summaryrefslogtreecommitdiffstats
path: root/libexec/rtld-elf/rtld.c
diff options
context:
space:
mode:
authorkan <kan@FreeBSD.org>2012-04-02 11:50:14 +0000
committerkan <kan@FreeBSD.org>2012-04-02 11:50:14 +0000
commitabab6bc303bf1ded31000eea4c03b723998d2355 (patch)
tree50ffd733909aadbdb13d08ff6a10b4a94b93547b /libexec/rtld-elf/rtld.c
parent74a66a0c1f917ff27b89ed254417a65541eb3426 (diff)
downloadFreeBSD-src-abab6bc303bf1ded31000eea4c03b723998d2355.zip
FreeBSD-src-abab6bc303bf1ded31000eea4c03b723998d2355.tar.gz
Do not try to adjust stacks if dlopen_object is called too early.
This is a follow-up to r233231, which fixed similar issue with object initialization code. Reviewed by: kib MFC after: 1 week (with 233231)
Diffstat (limited to 'libexec/rtld-elf/rtld.c')
-rw-r--r--libexec/rtld-elf/rtld.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/libexec/rtld-elf/rtld.c b/libexec/rtld-elf/rtld.c
index d3ce3c6..916143b 100644
--- a/libexec/rtld-elf/rtld.c
+++ b/libexec/rtld-elf/rtld.c
@@ -2585,7 +2585,10 @@ dlopen_object(const char *name, int fd, Obj_Entry *refobj, int lo_flags,
name);
GDB_STATE(RT_CONSISTENT,obj ? &obj->linkmap : NULL);
- map_stacks_exec(&lockstate);
+
+ if (!(lo_flags & RTLD_LO_EARLY)) {
+ map_stacks_exec(&lockstate);
+ }
if (initlist_objects_ifunc(&initlist, (mode & RTLD_MODEMASK) == RTLD_NOW,
(lo_flags & RTLD_LO_EARLY) ? SYMLOOK_EARLY : 0,
OpenPOWER on IntegriCloud