Fixed a dangling pointer problem that prevented the http_proxy environment
authorDan Fandrich <dan@coneharvesters.com>
Thu, 25 Jan 2007 01:35:43 +0000 (01:35 +0000)
committerDan Fandrich <dan@coneharvesters.com>
Thu, 25 Jan 2007 01:35:43 +0000 (01:35 +0000)
variable from being properly used in many cases (and caused test case 63
to fail).

CHANGES
TODO-RELEASE
lib/url.c
tests/runtests.pl

diff --git a/CHANGES b/CHANGES
index 8d529da..888b417 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -6,6 +6,11 @@
 
                                   Changelog
 
+Dan F (24 January 2007)
+- Fixed a dangling pointer problem that prevented the http_proxy environment
+  variable from being properly used in many cases (and caused test case 63
+  to fail).
+
 Daniel (23 January 2007)
 - David McCreedy did NTLM changes mainly for non-ASCII platforms:
 
index 468b7e3..acda7fd 100644 (file)
@@ -4,9 +4,6 @@ To get fixed in 7.16.1 (planned release: January 2007)
 69 - Jeff Pohlmeyer's curl_multi_socket crashing case. Recipe and instructions
      here: http://curl.haxx.se/mail/lib-2007-01/0022.html
 
-77 - Dan Fandrich's HTTP proxy problem:
-     http://curl.haxx.se/mail/lib-2007-01/0120.html
-
 78 - HTTP Pipelining, NULL content
      http://curl.haxx.se/bug/view.cgi?id=1631566
 
index 91cb57e..01751a3 100644 (file)
--- a/lib/url.c
+++ b/lib/url.c
@@ -3380,12 +3380,13 @@ else {
     conn->proxy.name = conn->proxy.rawalloc;
 
     free(proxydup); /* free the duplicate pointer and not the modified */
+    proxy = NULL;   /* this may have just been freed */
     if(!conn->proxy.rawalloc)
       return CURLE_OUT_OF_MEMORY;
   }
 
   /*************************************************************
-   * If the protcol is using SSL and HTTP proxy is used, we set
+   * If the protocol is using SSL and HTTP proxy is used, we set
    * the tunnel_proxy bit.
    *************************************************************/
   if((conn->protocol&PROT_SSL) && conn->bits.httpproxy)
@@ -3831,7 +3832,7 @@ else {
     /* set a pointer to the hostname we display */
     fix_hostname(data, conn, &conn->host);
 
-    if(!proxy || !*proxy) {
+    if(!conn->proxy.name || !*conn->proxy.name) {
       /* If not connecting via a proxy, extract the port from the URL, if it is
        * there, thus overriding any defaults that might have been set above. */
       conn->port =  conn->remote_port; /* it is the same port */
index bc36a92..656316c 100755 (executable)
@@ -1706,7 +1706,7 @@ sub singletest {
 
     if($curl_debug) {
         if(! -f $memdump) {
-            logmsg "\n** ALERT! memory debuggin without any output file?\n";
+            logmsg "\n** ALERT! memory debugging without any output file?\n";
         }
         else {
             my @memdata=`$memanalyze $memdump`;