socks5_connect(): Fail in case of unsupported address types
authorFabian Keil <fk@fabiankeil.de>
Tue, 25 Oct 2016 10:45:56 +0000 (10:45 +0000)
committerFabian Keil <fk@fabiankeil.de>
Tue, 25 Oct 2016 10:45:56 +0000 (10:45 +0000)
Previously they would not be detected right away and
Privoxy would fail later on with an error message that
didn't make it obvious that the problem was socks-related.

So far, no such problems have actually been reported.

gateway.c

index 304ecd4..67d878e 100644 (file)
--- a/gateway.c
+++ b/gateway.c
@@ -1,4 +1,4 @@
-const char gateway_rcs[] = "$Id: gateway.c,v 1.96 2016/01/16 12:30:43 fabiankeil Exp $";
+const char gateway_rcs[] = "$Id: gateway.c,v 1.97 2016/10/25 10:43:00 fabiankeil Exp $";
 /*********************************************************************
  *
  * File        :  $Source: /cvsroot/ijbswa/current/gateway.c,v $
@@ -1172,6 +1172,10 @@ static jb_socket socks5_connect(const struct forward_spec *fwd,
                errstr = "SOCKS5 negotiation read failed (IPv6 address)";
             }
          }
+         else if (sbuf[3] != '\x01')
+         {
+             errstr = "SOCKS5 reply contains unsupported address type";
+         }
          if (errstr == NULL)
          {
             return(sfd);