diff options
-rw-r--r-- | lib/ldap.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/ldap.c b/lib/ldap.c index 223c3fb55..7323788cf 100644 --- a/lib/ldap.c +++ b/lib/ldap.c @@ -164,7 +164,11 @@ static dynafunc DynaGetFunction(const char *name) #if defined(HAVE_DLOPEN) || defined(HAVE_LIBDL) if (libldap) { - func = (dynafunc)dlsym(libldap, name); + /* This typecast magic below was brought by Joe Halpin. In ISO C, you + * cannot typecast a data pointer to a function pointer, but that's + * exactly what we need to do here to avoid compiler warnings on picky + * compilers! */ + *(void**) (&func) = dlsym(libldap, name); } #elif defined(WIN32) if (libldap) { |