From ee55de4929e149035712f805baeb391e121615a4 Mon Sep 17 00:00:00 2001 From: Joakim Tjernlund Date: Thu, 26 Aug 2004 14:00:04 +0000 Subject: Added test for RTLD_GLOBAL flag in _dl_find_hash(). Fixed a bug in libdl.c where the RTLD_GLOBAL was assigned wronly. --- ldso/libdl/libdl.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'ldso/libdl/libdl.c') diff --git a/ldso/libdl/libdl.c b/ldso/libdl/libdl.c index 6c4e9843b..8199a7598 100644 --- a/ldso/libdl/libdl.c +++ b/ldso/libdl/libdl.c @@ -223,13 +223,14 @@ void *dlopen(const char *libname, int flag) _dl_memset (dyn_ptr->next, 0, sizeof (struct dyn_elf)); dyn_ptr = dyn_ptr->next; dyn_ptr->dyn = tpnt1; - tpnt->rtld_flags |= RTLD_GLOBAL; if (!tpnt1) { tpnt1 = _dl_load_shared_library(0, &rpnt, tcurr, lpntstr, 0); + dyn_ptr->dyn = tpnt1; if (!tpnt1) goto oops; - dyn_ptr->dyn = tpnt1; + tpnt1->rtld_flags |= RTLD_GLOBAL; } else { + tpnt1->rtld_flags |= RTLD_GLOBAL; tpnt1->usage_count++; } } -- cgit v1.2.3