From: Daniel Stenberg Date: Mon, 25 Aug 2014 11:33:34 +0000 (+0200) Subject: CONNECT: close proxy connections that fail to CONNECT X-Git-Tag: curl-7_38_0~52 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=36a76380739660ce368d97289d87d0906c412d47;p=thirdparty%2Fcurl.git 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 --- diff --git a/lib/http_proxy.c b/lib/http_proxy.c index 17f1c00a1d..5343eb718a 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 */