Commit 46f906a1 authored by Isaac Boukris's avatar Isaac Boukris Committed by Daniel Stenberg
Browse files

SPNEGO: Fix memory leak when authentication fails



If SPNEGO fails, cleanup the negotiate handle right away.

Fixes #1115

Signed-off-by: default avatarIsaac Boukris <iboukris@gmail.com>
Reported-by: ashman-p
parent 1299df68
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -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)