summaryrefslogtreecommitdiffstats
path: root/libexec
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2017-05-29 13:18:20 +0000
committerkib <kib@FreeBSD.org>2017-05-29 13:18:20 +0000
commit03a6f9fd43c0dc1a4a0ea8b2757285d2e33b6bd1 (patch)
tree34d9047a5ed701a723c05cb5d4706ae1d9953c52 /libexec
parent0bf386fbb2559e0d42ec9339380338a3dabd024a (diff)
downloadFreeBSD-src-03a6f9fd43c0dc1a4a0ea8b2757285d2e33b6bd1.zip
FreeBSD-src-03a6f9fd43c0dc1a4a0ea8b2757285d2e33b6bd1.tar.gz
MFC r318312:
Fix the AT_EXECFD functionality.
Diffstat (limited to 'libexec')
-rw-r--r--libexec/rtld-elf/map_object.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/libexec/rtld-elf/map_object.c b/libexec/rtld-elf/map_object.c
index 30af4ce..6f77d98 100644
--- a/libexec/rtld-elf/map_object.c
+++ b/libexec/rtld-elf/map_object.c
@@ -193,6 +193,8 @@ map_object(int fd, const char *path, const struct stat *sb)
base_flags = MAP_PRIVATE | MAP_ANON | MAP_NOCORE;
if (npagesizes > 1 && round_page(segs[0]->p_filesz) >= pagesizes[1])
base_flags |= MAP_ALIGNED_SUPER;
+ if (base_vaddr != 0)
+ base_flags |= MAP_FIXED | MAP_EXCL;
mapbase = mmap(base_addr, mapsize, PROT_NONE, base_flags, -1, 0);
if (mapbase == (caddr_t) -1) {
OpenPOWER on IntegriCloud