summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormigueljcrum <miguel@localhost>2019-09-06 13:43:51 +0000
committerDaniel Stenberg <daniel@haxx.se>2019-09-10 08:06:05 +0200
commit67b30b341811cd0bc60bdaab5a7c5532fa23f623 (patch)
tree17145bdfc914749a1b1ab13a70726a6cf44e5201
parentcb3dc99175a2b1cd272272c73d85c6426af70edd (diff)
downloadgnurl-67b30b341811cd0bc60bdaab5a7c5532fa23f623.tar.gz
gnurl-67b30b341811cd0bc60bdaab5a7c5532fa23f623.tar.bz2
gnurl-67b30b341811cd0bc60bdaab5a7c5532fa23f623.zip
sspi: fix memory leaks
Closes #4299
-rw-r--r--lib/vauth/digest_sspi.c5
-rw-r--r--lib/vauth/krb5_sspi.c5
-rw-r--r--lib/vauth/ntlm_sspi.c5
-rw-r--r--lib/vauth/spnego_sspi.c6
4 files changed, 21 insertions, 0 deletions
diff --git a/lib/vauth/digest_sspi.c b/lib/vauth/digest_sspi.c
index 850d6262b..a1090568b 100644
--- a/lib/vauth/digest_sspi.c
+++ b/lib/vauth/digest_sspi.c
@@ -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);
}
diff --git a/lib/vauth/krb5_sspi.c b/lib/vauth/krb5_sspi.c
index 6ac049eb3..98041d915 100644
--- a/lib/vauth/krb5_sspi.c
+++ b/lib/vauth/krb5_sspi.c
@@ -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);
}
diff --git a/lib/vauth/ntlm_sspi.c b/lib/vauth/ntlm_sspi.c
index 28109f76a..cd6cb79c1 100644
--- a/lib/vauth/ntlm_sspi.c
+++ b/lib/vauth/ntlm_sspi.c
@@ -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);
}
diff --git a/lib/vauth/spnego_sspi.c b/lib/vauth/spnego_sspi.c
index 13e20db39..b9c2cf7d6 100644
--- a/lib/vauth/spnego_sspi.c
+++ b/lib/vauth/spnego_sspi.c
@@ -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);
}