OSEC

Neohapsis is currently accepting applications for employment. For more information, please visit our website www.neohapsis.com or email hr@neohapsis.com
Re: LDAP API version check (was: warning: dict_ldap_lookup... Decoding error)

From: Wietse Venema (wietseporcupine.org)
Date: Wed Jul 11 2007 - 20:52:45 CDT


Bob Cunningham:
> On Jul 11, 2007, at 6:59 AM, Victor Duchovni wrote:
>
> > Not sure whether it would have caught this problem... What are the
> > LDAP_API_VERSION values for the OP's correct and incorrect ldap.h
> > files?
>
> My fundamental error was to compile Postfix to use the OpenLDAP
> runtime libraries without having loaded the full OpenLDAP
> development package.
>
> So the object code was compiled using Solaris 10 bundled /usr/include/
> ldap.h
> which has an LDAP_API_VERSION of:
>
> #define LDAP_API_VERSION 2005
>
> [Which should be appropriate for compiling Postfix with the Solaris 10
> bundled LDAP libraries. I didn't actually try that.]
>
> Vs. current OpenLDAP development ldap.h files with:
>
> #define LDAP_API_VERSION 3001

So, indeed, a simple run-time check would have detected this "DLL
hell" problem, just like Postfix already does with SASL and with
Berkeley DB.

It's unfortunate that the C run-time system doesn't report such
library mismatches, and that Postfix will have to do it instead.

        Wietse