diff options
Diffstat (limited to 'libexec/rtld-elf/malloc.c')
-rw-r--r-- | libexec/rtld-elf/malloc.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/libexec/rtld-elf/malloc.c b/libexec/rtld-elf/malloc.c index cfd541eabc9d..188916b69606 100644 --- a/libexec/rtld-elf/malloc.c +++ b/libexec/rtld-elf/malloc.c @@ -47,6 +47,7 @@ static char *rcsid = "$FreeBSD$"; #include <sys/types.h> #include <sys/sysctl.h> +#include <errno.h> #include <stdarg.h> #include <stddef.h> #include <stdio.h> @@ -55,7 +56,9 @@ static char *rcsid = "$FreeBSD$"; #include <unistd.h> #include <sys/param.h> #include <sys/mman.h> +#include "rtld.h" #include "rtld_printf.h" +#include "paths.h" static void morecore(); static int findbucket(); @@ -472,9 +475,11 @@ int n; if (pagepool_end - pagepool_start > pagesz) { caddr_t addr = (caddr_t) (((long)pagepool_start + pagesz - 1) & ~(pagesz - 1)); - if (munmap(addr, pagepool_end - addr) != 0) - rtld_fdprintf(STDERR_FILENO, "morepages: munmap %p", - addr); + if (munmap(addr, pagepool_end - addr) != 0) { + rtld_fdprintf(STDERR_FILENO, _BASENAME_RTLD ": " + "morepages: cannot munmap %p: %s\n", + addr, rtld_strerror(errno)); + } } offset = (long)pagepool_start - ((long)pagepool_start & ~(pagesz - 1)); @@ -482,7 +487,9 @@ int n; if ((pagepool_start = mmap(0, n * pagesz, PROT_READ|PROT_WRITE, MAP_ANON|MAP_PRIVATE, fd, 0)) == (caddr_t)-1) { - rtld_printf("Cannot map anonymous memory\n"); + rtld_fdprintf(STDERR_FILENO, _BASENAME_RTLD ": morepages: " + "cannot mmap anonymous memory: %s\n", + rtld_strerror(errno)); return 0; } pagepool_end = pagepool_start + n * pagesz; |