1
0
mirror of https://github.com/apache/httpd.git synced 2025-08-08 15:02:10 +03:00

mod_proxy_http: follow up to r1836588: fix drop of spurious 100 responses.

r1836588 broke t/security/CVE-2008-2364.t by forwarding more than one
"100 continue" response, fix it.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1836750 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Yann Ylavic
2018-07-26 17:51:09 +00:00
parent 12c264bec0
commit f6fcec7974

View File

@@ -1615,11 +1615,12 @@ int ap_proxy_http_process_response(proxy_http_req_t *req)
ap_log_rerror(APLOG_MARK, APLOG_TRACE2, 0, r, ap_log_rerror(APLOG_MARK, APLOG_TRACE2, 0, r,
"HTTP: received interim %d response", r->status); "HTTP: received interim %d response", r->status);
if (!policy if (!policy
|| !strcasecmp(policy, "RFC") || (!strcasecmp(policy, "RFC")
|| (proxy_status == HTTP_CONTINUE && req->expecting_100)) { && (proxy_status != HTTP_CONTINUE
|| (req->expecting_100 = 1)))) {
if (proxy_status == HTTP_CONTINUE) { if (proxy_status == HTTP_CONTINUE) {
r->expecting_100 = req->expecting_100;
req->expecting_100 = 0; req->expecting_100 = 0;
r->expecting_100 = 1;
} }
ap_send_interim_response(r, 1); ap_send_interim_response(r, 1);
} }