You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by je...@apache.org on 2005/12/07 01:19:00 UTC
svn commit: r354628 - in /httpd/httpd/trunk: CHANGES
modules/proxy/mod_proxy_http.c
Author: jerenkrantz
Date: Tue Dec 6 16:18:58 2005
New Revision: 354628
URL: http://svn.apache.org/viewcvs?rev=354628&view=rev
Log:
If we get an error reading the upstream response, we should bail.
Reported by: Brian Akins
Modified:
httpd/httpd/trunk/CHANGES
httpd/httpd/trunk/modules/proxy/mod_proxy_http.c
Modified: httpd/httpd/trunk/CHANGES
URL: http://svn.apache.org/viewcvs/httpd/httpd/trunk/CHANGES?rev=354628&r1=354627&r2=354628&view=diff
==============================================================================
--- httpd/httpd/trunk/CHANGES [utf-8] (original)
+++ httpd/httpd/trunk/CHANGES [utf-8] Tue Dec 6 16:18:58 2005
@@ -2,6 +2,9 @@
Changes with Apache 2.3.0
[Remove entries to the current 2.0 and 2.2 section below, when backported]
+ *) mod_proxy: If we get an error reading the upstream response,
+ close the connection. [Brian Akins, Justin Erenkrantz]
+
*) mod_ssl: Fix a possible crash during access control checks if a
non-SSL request is processed for an SSL vhost (such as the
"HTTP request received on SSL port" error message when an 400
Modified: httpd/httpd/trunk/modules/proxy/mod_proxy_http.c
URL: http://svn.apache.org/viewcvs/httpd/httpd/trunk/modules/proxy/mod_proxy_http.c?rev=354628&r1=354627&r2=354628&view=diff
==============================================================================
--- httpd/httpd/trunk/modules/proxy/mod_proxy_http.c (original)
+++ httpd/httpd/trunk/modules/proxy/mod_proxy_http.c Tue Dec 6 16:18:58 2005
@@ -1482,6 +1482,7 @@
else if (rv != APR_SUCCESS) {
ap_log_cerror(APLOG_MARK, APLOG_ERR, rv, c,
"proxy: error reading response");
+ c->aborted = 1;
break;
}
/* next time try a non-blocking read */
@@ -1546,6 +1547,11 @@
apr_brigade_cleanup(bb);
}
} while (interim_response);
+
+ /* If we our connection with the client is to be aborted, return DONE. */
+ if (c->aborted) {
+ return DONE;
+ }
if (conf->error_override) {
/* the code above this checks for 'OK' which is what the hook expects */