From 9d1145598abf9fddae2e88cca9e114c12a1b7d9d Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Mon, 10 Jan 2005 23:32:14 +0000 Subject: [PATCH] Bruce Mitchener identified (bug report #1099640) the never-ending SOCKS5 problem with the version byte and the check for bad versions. Bruce has lots of clues on this, and based on his suggestion I've now removed the check of that byte since it seems to be able to contain 1 or 5. --- CHANGES | 6 ++++++ RELEASE-NOTES | 3 ++- lib/url.c | 4 ++-- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/CHANGES b/CHANGES index 0f7336b2d..e9678eee8 100644 --- a/CHANGES +++ b/CHANGES @@ -7,6 +7,12 @@ Changelog +Daniel (11 January 2005) +- Bruce Mitchener identified (bug report #1099640) the never-ending SOCKS5 + problem with the version byte and the check for bad versions. Bruce has lots + of clues on this, and based on his suggestion I've now removed the check of + that byte since it seems to be able to contain 1 or 5. + Daniel (10 January 2005) - Pavel Orehov reported memory problems with the multi interface in bug report #1098843. In short, a shared DNS cache was setup for a multi handle and when diff --git a/RELEASE-NOTES b/RELEASE-NOTES index fd94aca1f..54453c8e9 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -16,6 +16,7 @@ This release includes the following changes: This release includes the following bugfixes: + o SOCKS5 version check o memory problem with cleaning up multi interface o SSL certificate name memory leak o -d with -G to multiple URLs crashed @@ -34,6 +35,6 @@ advice from friends like these: Dan Fandrich, Peter Pentchev, Marcin Konicki, Rune Kleveland, David Shaw, Werner Koch, Gisle Vanem, Alex Neblett, Kai Sommerfeld, Marty Kuhrt, - Hzhijun, Pavel Orehov + Hzhijun, Pavel Orehov, Bruce Mitchener Thanks! (and sorry if I forgot to mention someone) diff --git a/lib/url.c b/lib/url.c index 29c35bf05..6c3b662b4 100644 --- a/lib/url.c +++ b/lib/url.c @@ -1829,8 +1829,8 @@ static int handleSock5Proxy(const char *proxy_name, return 1; } - if ((socksreq[0] != 5) || /* version */ - (socksreq[1] != 0)) { /* status */ + /* ignore the first (VER) byte */ + if (socksreq[1] != 0) { /* status */ failf(conn->data, "User was rejected by the SOCKS5 server (%d %d).", socksreq[0], socksreq[1]); return 1;