From 724152795672089837ddda2ebde15d1113da6b1b Mon Sep 17 00:00:00 2001 From: Steve Holme Date: Sun, 4 Jan 2015 14:11:02 +0000 Subject: ldap: Fixed memory leak from commit efb64fdf80 The unescapped DN was not freed after a successful character conversion. --- lib/ldap.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'lib/ldap.c') diff --git a/lib/ldap.c b/lib/ldap.c index 66be12635..2b4b168ed 100644 --- a/lib/ldap.c +++ b/lib/ldap.c @@ -737,6 +737,7 @@ static int _ldap_url_parse2 (const struct connectdata *conn, LDAPURLDesc *ludp) LDAP_TRACE (("DN '%s'\n", dn)); + /* Unescape the DN */ unescapped = curl_easy_unescape(conn->data, dn, 0, NULL); if(!unescapped) { rc = LDAP_NO_MEMORY; @@ -746,10 +747,13 @@ static int _ldap_url_parse2 (const struct connectdata *conn, LDAPURLDesc *ludp) #if defined(CURL_LDAP_WIN) && \ (defined(USE_WIN32_IDN) || defined(USE_WINDOWS_SSPI)) + /* Convert the unescapped string to a tchar */ ludp->lud_dn = Curl_convert_UTF8_to_tchar(unescapped); - if(!ludp->lud_dn) { - Curl_safefree(unescapped); + /* Free the unescapped string as we are done with it */ + Curl_unicodefree(unescapped); + + if(!ludp->lud_dn) { rc = LDAP_NO_MEMORY; goto quit; -- cgit v1.2.3