From: William A. Rowe Jr Date: Thu, 7 Oct 2010 22:29:47 +0000 (+0000) Subject: Fix recursive ErrorDocument handling, when r->status isn't HTTP_OK X-Git-Tag: 2.0.64~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bc451decbc1660d9b5ffb067eaecd0415f73845d;p=thirdparty%2Fapache%2Fhttpd.git Fix recursive ErrorDocument handling, when r->status isn't HTTP_OK upon first pass through ap_die(). PR: 36090 Backport: r354118 Submitted by: Chris Darroch Reviewed by: covener, rjung, wrowe git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.0.x@1005656 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/CHANGES b/CHANGES index f2d557f4c61..273c317dd75 100644 --- a/CHANGES +++ b/CHANGES @@ -57,6 +57,8 @@ Changes with Apache 2.0.64 mod_proxy_ftp: Prevent XSS attacks when using wildcards in the path of the FTP URL. Discovered by Marc Bevand of Rapid7. [Ruediger Pluem] + *) Fix recursive ErrorDocument handling. PR 36090 [Chris Darroch] + *) mod_ssl: Do not do overlapping memcpy. PR 45444 [Joe Orton] *) Add Set-Cookie and Set-Cookie2 to the list of headers allowed to pass diff --git a/STATUS b/STATUS index 131088e60e7..d68de700e1e 100644 --- a/STATUS +++ b/STATUS @@ -113,15 +113,7 @@ CURRENT RELEASE NOTES: RELEASE SHOWSTOPPERS: - * Backport 354118: Fix recursive ErrorDocument handling [when r->status isn't - HTTP_OK upon first pass through ap_die()]. PR #36090 - Trunk version of patch: - http://svn.apache.org/viewvc?view=rev&revision=354118 - 2.2.x patch: - http://svn.apache.org/viewvc?view=rev&revision=355454 - Backport version for 2.0.x of patch: - (trunk version works) - +1: covener, rjung, wrowe + PATCHES ACCEPTED TO BACKPORT FROM TRUNK: [ start all new proposals below, under PATCHES PROPOSED. ] diff --git a/modules/http/http_request.c b/modules/http/http_request.c index 95240f2c709..c80816d2832 100644 --- a/modules/http/http_request.c +++ b/modules/http/http_request.c @@ -259,6 +259,7 @@ void ap_process_request(request_rec *r) ap_finalize_request_protocol(r); } else { + r->status = HTTP_OK; ap_die(access_status, r); }