aboutsummaryrefslogtreecommitdiff
path: root/libexec/rtld-elf/malloc.c
diff options
context:
space:
mode:
Diffstat (limited to 'libexec/rtld-elf/malloc.c')
-rw-r--r--libexec/rtld-elf/malloc.c15
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;