1
0
mirror of https://github.com/moparisthebest/curl synced 2024-11-17 23:15:08 -05:00

ntlm: fix memory leak

Running tests\libtest\libntlmconnect.exe reveals a 1 byte (!) leak in
./lib/curl_ntlm_msgs.c:

perl ..\memanalyze.pl c:memdebug.curl
Leak detected: memory still allocated: 1 bytes
At 9771e8, there's 1 bytes.
allocated by curl_ntlm_msgs.c:399

Snippet from curl_ntlm_msgs.c:
   /* setup ntlm identity's domain and length */
   dup_domain.tchar_ptr = malloc(sizeof(TCHAR) * (domlen + 1));

(my domlen == 0).

'dup_domain.tbyte_ptr' looks to be freed in Curl_ntlm_sspi_cleanup() via
'ntlm->identity.Domain'. But I see no freeing of 'dup_domain.tchar_ptr'.
This commit is contained in:
Gisle Vanem 2013-02-08 15:50:23 +01:00 committed by Daniel Stenberg
parent 72688317ad
commit 463082bea4

View File

@ -405,6 +405,7 @@ CURLcode Curl_ntlm_create_type1_message(const char *userp,
*(dup_domain.tchar_ptr + domlen) = TEXT('\0'); *(dup_domain.tchar_ptr + domlen) = TEXT('\0');
ntlm->identity.Domain = dup_domain.tbyte_ptr; ntlm->identity.Domain = dup_domain.tbyte_ptr;
ntlm->identity.DomainLength = curlx_uztoul(domlen); ntlm->identity.DomainLength = curlx_uztoul(domlen);
free(dup_domain.tchar_ptr);
dup_domain.tchar_ptr = NULL; dup_domain.tchar_ptr = NULL;
Curl_unicodefree(useranddomain.tchar_ptr); Curl_unicodefree(useranddomain.tchar_ptr);