diff options
author | kib <kib@FreeBSD.org> | 2016-03-12 17:33:40 +0000 |
---|---|---|
committer | kib <kib@FreeBSD.org> | 2016-03-12 17:33:40 +0000 |
commit | 32bf5aa11d449f2e148cec5c2272be9962232192 (patch) | |
tree | 9cc9233dc3bbf22f0133910944ebc9ee5c1f9c87 /lib/libc/gen/elf_utils.c | |
parent | 5dfb941cf33c8900cbad0f36df3eda5b938c602b (diff) | |
download | FreeBSD-src-32bf5aa11d449f2e148cec5c2272be9962232192.zip FreeBSD-src-32bf5aa11d449f2e148cec5c2272be9962232192.tar.gz |
MFC r295407:
Make libc __pthread_map_stacks_exec() interposed.
Diffstat (limited to 'lib/libc/gen/elf_utils.c')
-rw-r--r-- | lib/libc/gen/elf_utils.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/lib/libc/gen/elf_utils.c b/lib/libc/gen/elf_utils.c index 7bd7511..3d8c593 100644 --- a/lib/libc/gen/elf_utils.c +++ b/lib/libc/gen/elf_utils.c @@ -32,6 +32,7 @@ #include <sys/sysctl.h> #include <link.h> #include <stddef.h> +#include "libc_private.h" int __elf_phdr_match_addr(struct dl_phdr_info *phdr_info, void *addr) @@ -51,9 +52,8 @@ __elf_phdr_match_addr(struct dl_phdr_info *phdr_info, void *addr) return (i != phdr_info->dlpi_phnum); } -#pragma weak __pthread_map_stacks_exec void -__pthread_map_stacks_exec(void) +__libc_map_stacks_exec(void) { int mib[2]; struct rlimit rlim; @@ -72,3 +72,10 @@ __pthread_map_stacks_exec(void) rlim.rlim_cur, _rtld_get_stack_prot()); } +#pragma weak __pthread_map_stacks_exec +void +__pthread_map_stacks_exec(void) +{ + + ((void (*)(void))__libc_interposing[INTERPOS_map_stacks_exec])(); +} |