OpenLDAP: fix LDAP connection phase memory leak
bug: http://curl.haxx.se/bug/view.cgi?id=3474308
This commit is contained in:
parent
6ea7acf5a9
commit
2cafb0e97c
@ -6,7 +6,7 @@
|
||||
* \___|\___/|_| \_\_____|
|
||||
*
|
||||
* Copyright (C) 2010, Howard Chu, <hyc@openldap.org>
|
||||
* Copyright (C) 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
* Copyright (C) 2011 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
*
|
||||
* This software is licensed as described in the file COPYING, which
|
||||
* you should have received as part of this distribution. The terms
|
||||
@ -336,7 +336,10 @@ retry:
|
||||
int proto;
|
||||
ldap_get_option(li->ld, LDAP_OPT_PROTOCOL_VERSION, &proto);
|
||||
if(proto == LDAP_VERSION3) {
|
||||
if(info) {
|
||||
ldap_memfree(info);
|
||||
info = NULL;
|
||||
}
|
||||
proto = LDAP_VERSION2;
|
||||
ldap_set_option(li->ld, LDAP_OPT_PROTOCOL_VERSION, &proto);
|
||||
li->didbind = FALSE;
|
||||
@ -347,8 +350,13 @@ retry:
|
||||
if(err) {
|
||||
failf(data, "LDAP remote: bind failed %s %s", ldap_err2string(rc),
|
||||
info ? info : "");
|
||||
if(info)
|
||||
ldap_memfree(info);
|
||||
return CURLE_LOGIN_DENIED;
|
||||
}
|
||||
|
||||
if(info)
|
||||
ldap_memfree(info);
|
||||
conn->recv[FIRSTSOCKET] = ldap_recv;
|
||||
*done = TRUE;
|
||||
return CURLE_OK;
|
||||
|
Loading…
Reference in New Issue
Block a user