From: Amos Jeffries Date: Tue, 17 Nov 2015 07:06:50 +0000 (-0800) Subject: Document bug in clientTunnelOnError X-Git-Tag: SQUID_4_0_3~5^2~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=54a3494dc5ff20797f969d16162d35a7eea7e9d9;p=thirdparty%2Fsquid.git Document bug in clientTunnelOnError --- diff --git a/src/client_side.cc b/src/client_side.cc index c497fa471a..f0a9d759cb 100644 --- a/src/client_side.cc +++ b/src/client_side.cc @@ -2341,6 +2341,9 @@ clientTunnelOnError(ConnStateData *conn, ClientSocketContext *context, HttpReque if (answer == ACCESS_ALLOWED && answer.kind == 1) { debugs(33, 3, "Request will be tunneled to server"); if (context) { + // XXX: Either the context is finished() or it should stay queued. + // The below may leak client streams BodyPipe objects. BUT, we need + // to check if client-streams detatch is safe to do here (finished() will detatch). assert(conn->pipeline.front() == context); // XXX: still assumes HTTP/1 semantics conn->pipeline.popMe(ClientSocketContextPointer(context)); }