]> granicus.if.org Git - curl/commitdiff
Curl_disconnect: don't free the URL
authorDaniel Stenberg <daniel@haxx.se>
Wed, 20 Aug 2014 14:37:01 +0000 (16:37 +0200)
committerDaniel Stenberg <daniel@haxx.se>
Wed, 20 Aug 2014 14:37:01 +0000 (16:37 +0200)
The URL is not a property of the connection so it should not be freed in
the connection disconnect but in the Curl_close() that frees the easy
handle.

Bug: http://curl.haxx.se/mail/lib-2014-08/0148.html
Reported-by: Paras S
lib/url.c

index cf932530875e3c0c12256da850f7193828e6644f..e43b19d7560229437424a272763ba6dab04eca1e 100644 (file)
--- a/lib/url.c
+++ b/lib/url.c
@@ -424,6 +424,12 @@ CURLcode Curl_close(struct SessionHandle *data)
   Curl_safefree(data->state.scratch);
   Curl_ssl_free_certinfo(data);
 
+  /* Cleanup possible redirect junk */
+  if(data->req.newurl) {
+    free(data->req.newurl);
+    data->req.newurl = NULL;
+  }
+
   if(data->change.referer_alloc) {
     Curl_safefree(data->change.referer);
     data->change.referer_alloc = FALSE;
@@ -2642,12 +2648,6 @@ CURLcode Curl_disconnect(struct connectdata *conn, bool dead_connection)
   /* Cleanup NTLM connection-related data */
   Curl_http_ntlm_cleanup(conn);
 
-  /* Cleanup possible redirect junk */
-  if(data->req.newurl) {
-    free(data->req.newurl);
-    data->req.newurl = NULL;
-  }
-
   if(conn->handler->disconnect)
     /* This is set if protocol-specific cleanups should be made */
     conn->handler->disconnect(conn, dead_connection);