[Date Prev][Date Next] [Chronological] [Thread] [Top]

Fix for Memory Leak (ITS#217)



Full_Name: Tim Bowman
Version: 1.2.3
OS: Linux & NT
URL: ftp://ftp.openldap.org/incoming/
Submission from: (NULL) (209.140.75.114)


There is a memory leak due to the global openldap_ldap_global_options struct
(in init.c) having two members ldo_defbase & ldo_defhost which are malloced if
an ldap.conf file is read.  This is a one-time allocation, so it's only a big
deal
for OSs that don't free the memory.

I fixed it by cleaning them up in ldap_ld_free, since I am using a wrapper
library
that calls ldap_init for every connection.  This is kind of a bitch to fix if
you
want to unbind and bind after an init.  I first tried putting them on the stack
and
doing a strcpy instead of strdup, but the config file parsing function needs to
do
the right thing for those two cases.

Screwy API, Huh?  ldap needs an ldap_uninit to pair with ldap_init.

-T