svn commit: samba r12852 - in branches/SAMBA_3_0: .
examples/libsmbclient/smbwrapper
derrell at samba.org
derrell at samba.org
Wed Jan 11 18:22:06 GMT 2006
Author: derrell
Date: 2006-01-11 18:22:06 +0000 (Wed, 11 Jan 2006)
New Revision: 12852
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=12852
Log:
r12150 at cabra: derrell | 2006-01-11 13:21:14 -0500
Although RTLD_NEXT was not working properly a number of years ago, it seems to be now. Replace dlopen(/lib/libc...) with direct use of RTLD_NEXT
Modified:
branches/SAMBA_3_0/
branches/SAMBA_3_0/examples/libsmbclient/smbwrapper/wrapper.c
Changeset:
Property changes on: branches/SAMBA_3_0
___________________________________________________________________
Name: svk:merge
- 3a72dc49-98ff-0310-ab52-9b7ed7945d91:/local/samba3:12128
+ 3a72dc49-98ff-0310-ab52-9b7ed7945d91:/local/samba3:12150
Modified: branches/SAMBA_3_0/examples/libsmbclient/smbwrapper/wrapper.c
===================================================================
--- branches/SAMBA_3_0/examples/libsmbclient/smbwrapper/wrapper.c 2006-01-11 18:14:55 UTC (rev 12851)
+++ branches/SAMBA_3_0/examples/libsmbclient/smbwrapper/wrapper.c 2006-01-11 18:22:06 UTC (rev 12852)
@@ -62,7 +62,14 @@
#include <dirent.h>
#include <signal.h>
#include <stdarg.h>
+#ifdef __USE_GNU
+# define SMBW_USE_GNU
+#endif
+#define __USE_GNU /* need this to have RTLD_NEXT defined */
#include <dlfcn.h>
+#ifndef SMBW_USE_GNU
+# undef __USE_GNU
+#endif
#include <errno.h>
#include "libsmbclient.h"
#include "bsd-strlfunc.h"
@@ -131,7 +138,6 @@
static void initialize(void)
{
- void *lib = NULL;
int saved_errno;
#if SMBW_DEBUG & 0x1
char *error;
@@ -144,26 +150,18 @@
}
initialized = 1;
- if ((lib = dlopen("/lib/libc.so.6", RTLD_NOW | RTLD_GLOBAL)) == NULL) {
-#ifdef RTLD_NEXT
- lib = RTLD_NEXT;
-#else
- exit(1);
-#endif
- }
-
#if SMBW_DEBUG & 0x1
-# define GETSYM(symname, symstring) \
- if ((smbw_libc.symname = dlsym(lib, symstring)) == NULL) { \
- if (smbw_libc.write != NULL && \
- (error = dlerror()) != NULL) { \
- (* smbw_libc.write)(1, error, strlen(error)); \
- (* smbw_libc.write)(1, "\n", 1); \
- } \
+# define GETSYM(symname, symstring) \
+ if ((smbw_libc.symname = dlsym(RTLD_NEXT, symstring)) == NULL) { \
+ if (smbw_libc.write != NULL && \
+ (error = dlerror()) != NULL) { \
+ (* smbw_libc.write)(1, error, strlen(error)); \
+ (* smbw_libc.write)(1, "\n", 1); \
+ } \
}
#else
# define GETSYM(symname, symstring) \
- smbw_libc.symname = dlsym(lib, symstring);
+ smbw_libc.symname = dlsym(RTLD_NEXT, symstring);
#endif
/*
@@ -265,19 +263,6 @@
GETSYM(_select, "_select");
GETSYM(__select, "__select");
-#ifdef RTLD_NEXT
- if (lib != RTLD_NEXT) {
- dlclose(lib);
- }
-#else
- dlclose(lib);
-#endif
-
- /* Ensure that the C library is immediately available */
- if ((lib = dlopen("/lib/libc.so.6", RTLD_NOW | RTLD_GLOBAL)) == NULL) {
- exit(1);
- }
-
#if SMBW_DEBUG & 4
{
if ((debugFd =
More information about the samba-cvs
mailing list