From 0caf1ce9dbc4204cf78b88d00ddd73b3b0190df7 Mon Sep 17 00:00:00 2001 From: Cliff Woolley Date: Tue, 13 Nov 2001 07:37:13 +0000 Subject: [PATCH] Fix a bug which would cause the response headers to be omitted when sending a negotiated ErrorDocument because the required filters were attached to the wrong request_rec. Submitted by: John Sterling Reviewed by: Justin Erenkrantz, Cliff Woolley git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@91900 13f79535-47bb-0310-9956-ffa450edef68 --- CHANGES | 5 +++++ modules/http/http_request.c | 7 ++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/CHANGES b/CHANGES index 5a65c4e962..7d6770a900 100644 --- a/CHANGES +++ b/CHANGES @@ -1,5 +1,10 @@ Changes with Apache 2.0.29-dev + *) Fix a bug which would cause the response headers to be omitted + when sending a negotiated ErrorDocument because the required + filters were attached to the wrong request_rec. + [John Sterling ] + *) Remove commas from the end of the macros that define directives that are used by MPMs. Prior to this patch, you would use these macros without commas, which was unlike diff --git a/modules/http/http_request.c b/modules/http/http_request.c index 9bb4bece4e..99a53cfc18 100644 --- a/modules/http/http_request.c +++ b/modules/http/http_request.c @@ -123,6 +123,11 @@ AP_DECLARE(void) ap_die(int type, request_rec *r) int error_index = ap_index_of_response(type); char *custom_response = ap_response_code_string(r, error_index); int recursive_error = 0; + /* There are some cases where we walk up the request hierarchy + * to obtain the original error, but when adding the required_filters, + * we need to do so against the one we came in with. So, save it. + */ + request_rec *cur = r; if (type == AP_FILTER_ERROR) { return; @@ -224,7 +229,7 @@ AP_DECLARE(void) ap_die(int type, request_rec *r) custom_response); } } - add_required_filters(r); + add_required_filters(cur); ap_send_error_response(r, recursive_error); } -- 2.50.1