From 8aa8c98bd0c64f19bec11b125f2de0ef52656f0e Mon Sep 17 00:00:00 2001 From: Jeff Trawick Date: Thu, 6 Oct 2005 20:31:03 +0000 Subject: [PATCH] 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 --- CHANGES | 4 ++++ modules/proxy/mod_proxy_connect.c | 4 +++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGES b/CHANGES index 4ae8a9aca3..0c770be16a 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 a42bb7eaca..4444a3ca76 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; -- 2.40.0