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

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 <sterling@covalent.net>
Reviewed by:	Justin Erenkrantz, Cliff Woolley


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@91900 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Cliff Woolley
2001-11-13 07:37:13 +00:00
parent a47ed5762d
commit 0caf1ce9db
2 changed files with 11 additions and 1 deletions

View File

@@ -1,5 +1,10 @@
Changes with Apache 2.0.29-dev 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 <sterling@covalent.net>]
*) Remove commas from the end of the macros that define *) Remove commas from the end of the macros that define
directives that are used by MPMs. Prior to this patch, directives that are used by MPMs. Prior to this patch,
you would use these macros without commas, which was unlike you would use these macros without commas, which was unlike

View File

@@ -123,6 +123,11 @@ AP_DECLARE(void) ap_die(int type, request_rec *r)
int error_index = ap_index_of_response(type); int error_index = ap_index_of_response(type);
char *custom_response = ap_response_code_string(r, error_index); char *custom_response = ap_response_code_string(r, error_index);
int recursive_error = 0; 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) { if (type == AP_FILTER_ERROR) {
return; return;
@@ -224,7 +229,7 @@ AP_DECLARE(void) ap_die(int type, request_rec *r)
custom_response); custom_response);
} }
} }
add_required_filters(r); add_required_filters(cur);
ap_send_error_response(r, recursive_error); ap_send_error_response(r, recursive_error);
} }