From: Jeff Trawick Date: Thu, 6 Oct 2005 20:31:03 +0000 (+0000) Subject: mod_proxy_connect: Fix high CPU loop on systems like UnixWare which X-Git-Tag: 2.3.0~2901 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8aa8c98bd0c64f19bec11b125f2de0ef52656f0e;p=thirdparty%2Fapache%2Fhttpd.git mod_proxy_connect: Fix high CPU loop on systems like UnixWare which trigger POLL_ERR or POLL_HUP on a terminated connection. PR: 36951 git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@306878 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/CHANGES b/CHANGES index 4ae8a9aca3e..0c770be16ac 100644 --- a/CHANGES +++ b/CHANGES @@ -31,6 +31,10 @@ Changes with Apache 2.3.0 Changes with Apache 2.1.9 + *) mod_proxy_connect: Fix high CPU loop on systems like UnixWare which + trigger POLL_ERR or POLL_HUP on a terminated connection. PR 36951. + [Jeff Trawick, Ruediger Pluem] + *) SECURITY: CAN-2005-2970 (cve.mitre.org) worker MPM: Fix a memory leak which can occur after an aborted connection in some limited circumstances. [Greg Ames, Jeff Trawick] diff --git a/modules/proxy/mod_proxy_connect.c b/modules/proxy/mod_proxy_connect.c index a42bb7eaca1..4444a3ca768 100644 --- a/modules/proxy/mod_proxy_connect.c +++ b/modules/proxy/mod_proxy_connect.c @@ -357,8 +357,10 @@ static int proxy_connect_handler(request_rec *r, proxy_worker *worker, else break; } - else if ((pollevent & APR_POLLERR) || (pollevent & APR_POLLHUP)) + else if ((pollevent & APR_POLLERR) || (pollevent & APR_POLLHUP)) { + rv = APR_EOF; break; + } } else break;