diff options
-rw-r--r-- | lib/curl_sasl_sspi.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/curl_sasl_sspi.c b/lib/curl_sasl_sspi.c index 422b2f64c..df4da9645 100644 --- a/lib/curl_sasl_sspi.c +++ b/lib/curl_sasl_sspi.c @@ -416,8 +416,11 @@ CURLcode Curl_sasl_create_gssapi_user_message(struct SessionHandle *data, &resp_desc, &attrs, &tsDummy); - if(status != SEC_E_OK && status != SEC_I_CONTINUE_NEEDED) + if(status != SEC_E_OK && status != SEC_I_CONTINUE_NEEDED) { + Curl_safefree(chlg); + return CURLE_RECV_ERROR; + } if(memcmp(&context, krb5->context, sizeof(context))) { s_pSecFn->DeleteSecurityContext(krb5->context); @@ -431,6 +434,9 @@ CURLcode Curl_sasl_create_gssapi_user_message(struct SessionHandle *data, resp_buf.cbBuffer, outptr, outlen); } + /* Free the decoded challenge */ + Curl_safefree(chlg); + return result; } |