]> granicus.if.org Git - curl/commitdiff
fix spnego memory leak
authorYang Tse <yangsita@gmail.com>
Wed, 2 Jun 2010 10:44:46 +0000 (12:44 +0200)
committerYang Tse <yangsita@gmail.com>
Wed, 2 Jun 2010 10:44:46 +0000 (12:44 +0200)
lib/http_negotiate.c

index d51d456313fa1d5dd5318791cac91be288b5c356..ab1296e5be1956e8f66805453847e1db77347403 100644 (file)
@@ -305,11 +305,15 @@ CURLcode Curl_output_negotiate(struct connectdata *conn, bool proxy)
       infof(conn->data, "Make SPNEGO Initial Token failed\n");
     }
     else {
-      free(neg_ctx->output_token.value);
+      free(responseToken);
       responseToken = NULL;
+      free(neg_ctx->output_token.value);
       neg_ctx->output_token.value = malloc(spnegoTokenLength);
-      if(neg_ctx->output_token.value == NULL)
+      if(neg_ctx->output_token.value == NULL) {
+        free(spnegoToken);
+        spnegoToken = NULL;
         return CURLE_OUT_OF_MEMORY;
+      }
       memcpy(neg_ctx->output_token.value, spnegoToken,spnegoTokenLength);
       neg_ctx->output_token.length = spnegoTokenLength;
       free(spnegoToken);