From: Isaac Boukris Date: Wed, 9 Nov 2016 13:37:34 +0000 (+0200) Subject: SPNEGO: Fix memory leak when authentication fails X-Git-Tag: curl-7_52_0~141 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=46f906a1b0e987ff8a044595550ba2a0e3d6368c;p=thirdparty%2Fcurl.git SPNEGO: Fix memory leak when authentication fails If SPNEGO fails, cleanup the negotiate handle right away. Fixes #1115 Signed-off-by: Isaac Boukris Reported-by: ashman-p --- diff --git a/lib/http_negotiate.c b/lib/http_negotiate.c index eb17ed4f2e..5ea9f3401d 100644 --- a/lib/http_negotiate.c +++ b/lib/http_negotiate.c @@ -37,6 +37,7 @@ CURLcode Curl_input_negotiate(struct connectdata *conn, bool proxy, const char *header) { + CURLcode result; struct Curl_easy *data = conn->data; size_t len; @@ -89,8 +90,13 @@ CURLcode Curl_input_negotiate(struct connectdata *conn, bool proxy, } /* Initilise the security context and decode our challenge */ - return Curl_auth_decode_spnego_message(data, userp, passwdp, service, host, - header, neg_ctx); + result = Curl_auth_decode_spnego_message(data, userp, passwdp, service, + host, header, neg_ctx); + + if(result) + Curl_auth_spnego_cleanup(neg_ctx); + + return result; } CURLcode Curl_output_negotiate(struct connectdata *conn, bool proxy)