If the LDAP server is down, the failed connection attempt appears to leak memory. Example program: #include <lber.h> #include <ldap.h> int main() { LDAP *p; for (;;) { p=ldap_init("127.0.0.1", 389); if (!p) break; printf("%d\n", ldap_simple_bind_s(p, "dc=example.com", "foobar")); printf("unbind=%d\n", ldap_unbind_s(p)); } return (0); } If the server is down, this leaks memory rather quickly. If the server is up, but binddn/bindpw is wrong, there is no memory leak. If the server is up, and binddn and bindpw is right, no memory leak. Only when there's a failure to establish a connection
Reconfirmed with openldap 2.0.7 Kicked upstream. http://www.openldap.org/its/index.cgi?findid=1116
This has been fixed upstream in 2.0.19. The RH errata release 2.0.21-1 picks up this fix. This bug should be marked as resolved.
After three years, doing so now. :-)