From 36a76380739660ce368d97289d87d0906c412d47 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Mon, 25 Aug 2014 13:33:34 +0200 Subject: [PATCH] CONNECT: close proxy connections that fail to CONNECT This is usually due to failed auth. There's no point in us keeping such a connection alive since it shouldn't be re-used anyway. Bug: http://curl.haxx.se/bug/view.cgi?id=1381 Reported-by: Marcel Raad --- lib/http_proxy.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/lib/http_proxy.c b/lib/http_proxy.c index 17f1c00a1d7042..5343eb718a0d90 100644 --- a/lib/http_proxy.c +++ b/lib/http_proxy.c @@ -554,10 +554,16 @@ CURLcode Curl_proxyCONNECT(struct connectdata *conn, conn->bits.proxy_connect_closed = TRUE; infof(data, "Connect me again please\n"); } - else if(data->req.newurl) { - /* this won't be used anymore for the CONNECT so free it now */ - free(data->req.newurl); - data->req.newurl = NULL; + else { + if(data->req.newurl) { + /* this won't be used anymore for the CONNECT so free it now */ + free(data->req.newurl); + data->req.newurl = NULL; + } + /* failure, close this connection to avoid re-use */ + connclose(conn, "proxy CONNECT failure"); + Curl_closesocket(conn, conn->sock[sockindex]); + conn->sock[sockindex] = CURL_SOCKET_BAD; } /* to back to init state */