]> granicus.if.org Git - curl/commitdiff
sspi: fix memory leaks
authormigueljcrum <miguel@localhost>
Fri, 6 Sep 2019 13:43:51 +0000 (13:43 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Tue, 10 Sep 2019 06:06:05 +0000 (08:06 +0200)
Closes #4299

lib/vauth/digest_sspi.c
lib/vauth/krb5_sspi.c
lib/vauth/ntlm_sspi.c
lib/vauth/spnego_sspi.c

index 850d6262b641ab8adafc56bfe91240df1d556a76..a1090568b2f665394b8b876ff78d1c0e928d1e8f 100644 (file)
@@ -61,6 +61,11 @@ bool Curl_auth_is_digest_supported(void)
   status = s_pSecFn->QuerySecurityPackageInfo((TCHAR *) TEXT(SP_NAME_DIGEST),
                                               &SecurityPackage);
 
+  /* Release the package buffer as it is not required anymore */
+  if(status == SEC_E_OK) {
+    s_pSecFn->FreeContextBuffer(SecurityPackage);
+  }
+
   return (status == SEC_E_OK ? TRUE : FALSE);
 }
 
index 6ac049eb34ecb33c7badc0fe46e0f892997da7a9..98041d91564fc1b0a9be17167184fb666e4dc9df 100644 (file)
@@ -58,6 +58,11 @@ bool Curl_auth_is_gssapi_supported(void)
                                               TEXT(SP_NAME_KERBEROS),
                                               &SecurityPackage);
 
+  /* Release the package buffer as it is not required anymore */
+  if(status == SEC_E_OK) {
+    s_pSecFn->FreeContextBuffer(SecurityPackage);
+  }
+
   return (status == SEC_E_OK ? TRUE : FALSE);
 }
 
index 28109f76ab54ba7b8ee83e989216646b4be9872a..cd6cb79c14165e792ec68aba620f53d5d4b5bb29 100644 (file)
@@ -56,6 +56,11 @@ bool Curl_auth_is_ntlm_supported(void)
   status = s_pSecFn->QuerySecurityPackageInfo((TCHAR *) TEXT(SP_NAME_NTLM),
                                               &SecurityPackage);
 
+  /* Release the package buffer as it is not required anymore */
+  if(status == SEC_E_OK) {
+    s_pSecFn->FreeContextBuffer(SecurityPackage);
+  }
+
   return (status == SEC_E_OK ? TRUE : FALSE);
 }
 
index 13e20db39f794dc51fd50b4bea425b1134318b21..b9c2cf7d627757747ce66f729a7375857234d361 100644 (file)
@@ -59,6 +59,12 @@ bool Curl_auth_is_spnego_supported(void)
                                               TEXT(SP_NAME_NEGOTIATE),
                                               &SecurityPackage);
 
+  /* Release the package buffer as it is not required anymore */
+  if(status == SEC_E_OK) {
+    s_pSecFn->FreeContextBuffer(SecurityPackage);
+  }
+
+
   return (status == SEC_E_OK ? TRUE : FALSE);
 }