gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gnurl] 272/282: socks4: fix host resolve regression


From: gnunet
Subject: [gnurl] 272/282: socks4: fix host resolve regression
Date: Wed, 01 Apr 2020 14:32:17 +0200

This is an automated email from the git hooks/post-receive script.

ng0 pushed a commit to branch master
in repository gnurl.

commit f0e81605451b363617889820e17a35c262fdee78
Author: Daniel Stenberg <address@hidden>
AuthorDate: Sun Mar 8 17:24:50 2020 +0100

    socks4: fix host resolve regression
    
    1. The socks4 state machine was broken in the host resolving phase
    
    2. The code now insists on IPv4-only when using SOCKS4 as the protocol
    only supports that.
    
    Regression from #4907 and 4a4b63d, shipped in 7.69.0
    
    Reported-by: amishmm on github
    Bug: https://github.com/curl/curl/issues/5053#issuecomment-596191594
    Closes #5061
---
 lib/socks.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/lib/socks.c b/lib/socks.c
index 754726f6f..37099130e 100644
--- a/lib/socks.c
+++ b/lib/socks.c
@@ -205,6 +205,8 @@ CURLcode Curl_SOCKS4(const char *proxy_user,
 
   switch(sx->state) {
   case CONNECT_SOCKS_INIT:
+    /* SOCKS4 can only do IPv4, insist! */
+    conn->ip_version = CURL_IPRESOLVE_V4;
     if(conn->bits.httpproxy)
       infof(conn->data, "SOCKS4%s: connecting to HTTP proxy %s port %d\n",
             protocol4a ? "a" : "", hostname, remote_port);
@@ -261,8 +263,8 @@ CURLcode Curl_SOCKS4(const char *proxy_user,
     }
     else {
       result = Curl_resolv_check(data->conn, &dns);
-      /* stay in the state or error out */
-      return result;
+      if(!dns)
+        return result;
     }
     /* FALLTHROUGH */
   CONNECT_RESOLVED:

-- 
To stop receiving notification emails like this one, please contact
address@hidden.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]