summaryrefslogtreecommitdiff
path: root/lib/nss_wrapper
diff options
context:
space:
mode:
authorAndreas Schneider <asn@samba.org>2014-10-09 09:13:48 +0200
committerAndreas Schneider <asn@cryptomilk.org>2014-10-09 12:24:03 +0200
commit697908277951dc7fb9570e17f2662d8734aab986 (patch)
tree4ee82231a743ea885c86b0046894f61ef6ad03f6 /lib/nss_wrapper
parent1b27b73c6056b8ba1a7192f7a42c7638af445565 (diff)
downloadsamba-697908277951dc7fb9570e17f2662d8734aab986.tar.gz
nwrap: Fall back to RTLD_NEXT if we can't find libc.
Signed-off-by: Andreas Schneider <asn@samba.org> Reviewed-by: Michael Adam <obnox@samba.org>
Diffstat (limited to 'lib/nss_wrapper')
-rw-r--r--lib/nss_wrapper/nss_wrapper.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/lib/nss_wrapper/nss_wrapper.c b/lib/nss_wrapper/nss_wrapper.c
index a012cbd84b9..e3943ee61b5 100644
--- a/lib/nss_wrapper/nss_wrapper.c
+++ b/lib/nss_wrapper/nss_wrapper.c
@@ -562,10 +562,6 @@ static void *nwrap_load_lib_handle(enum nwrap_lib lib)
void *handle = NULL;
int i;
-#ifdef HAVE_APPLE
- return RTLD_NEXT;
-#endif
-
#ifdef RTLD_DEEPBIND
flags |= RTLD_DEEPBIND;
#endif
@@ -619,10 +615,17 @@ static void *nwrap_load_lib_handle(enum nwrap_lib lib)
}
if (handle == NULL) {
+#ifdef RTLD_NEXT
+ handle = nwrap_main_global->libc->handle
+ = nwrap_main_global->libc->sock_handle
+ = nwrap_main_global->libc->nsl_handle
+ = RTLD_NEXT;
+#else
NWRAP_LOG(NWRAP_LOG_ERROR,
"Failed to dlopen library: %s\n",
dlerror());
exit(-1);
+#endif
}
return handle;