]> granicus.if.org Git - curl/commitdiff
sasl_sspi: fix identity memory leak in digest authentication
authorStefan Bühler <buehler@teamviewer.com>
Thu, 12 Nov 2015 10:10:32 +0000 (11:10 +0100)
committerSteve Holme <steve_holme@hotmail.com>
Thu, 12 Nov 2015 19:11:40 +0000 (19:11 +0000)
lib/curl_sasl_sspi.c

index 84fce9f24a18378a950decd698d054f6cc2f4388..6fb7b5f52092b2a2aa168f67e27e6ada50a09496 100644 (file)
@@ -463,6 +463,7 @@ CURLcode Curl_sasl_create_digest_http_message(struct SessionHandle *data,
                                               p_identity, NULL, NULL,
                                               &credentials, &expiry);
   if(status != SEC_E_OK) {
+    Curl_sspi_free_identity(p_identity);
     free(output_token);
 
     return CURLE_LOGIN_DENIED;
@@ -492,6 +493,7 @@ CURLcode Curl_sasl_create_digest_http_message(struct SessionHandle *data,
 
   spn = Curl_convert_UTF8_to_tchar((char *) uripath);
   if(!spn) {
+    Curl_sspi_free_identity(p_identity);
     free(output_token);
 
     return CURLE_OUT_OF_MEMORY;
@@ -511,6 +513,7 @@ CURLcode Curl_sasl_create_digest_http_message(struct SessionHandle *data,
   else if(status != SEC_E_OK && status != SEC_I_CONTINUE_NEEDED) {
     s_pSecFn->FreeCredentialsHandle(&credentials);
 
+    Curl_sspi_free_identity(p_identity);
     free(output_token);
 
     return CURLE_OUT_OF_MEMORY;
@@ -521,6 +524,7 @@ CURLcode Curl_sasl_create_digest_http_message(struct SessionHandle *data,
     s_pSecFn->DeleteSecurityContext(&context);
     s_pSecFn->FreeCredentialsHandle(&credentials);
 
+    Curl_sspi_free_identity(p_identity);
     free(output_token);
 
     return CURLE_OUT_OF_MEMORY;