mirror of
https://github.com/apache/httpd.git
synced 2025-08-08 15:02:10 +03:00
Make sure we free the main request rather than the final internal
redirect. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1707155 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
@@ -256,14 +256,6 @@ AP_DECLARE(void) ap_process_request_after_handler(request_rec *r)
|
|||||||
apr_bucket *b;
|
apr_bucket *b;
|
||||||
conn_rec *c = r->connection;
|
conn_rec *c = r->connection;
|
||||||
|
|
||||||
/* Find the last request, taking into account internal
|
|
||||||
* redirects. We want to send the EOR bucket at the end of
|
|
||||||
* all the buckets so it does not jump the queue.
|
|
||||||
*/
|
|
||||||
while (r->next) {
|
|
||||||
r = r->next;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Send an EOR bucket through the output filter chain. When
|
/* Send an EOR bucket through the output filter chain. When
|
||||||
* this bucket is destroyed, the request will be logged and
|
* this bucket is destroyed, the request will be logged and
|
||||||
* its pool will be freed
|
* its pool will be freed
|
||||||
@@ -272,6 +264,14 @@ AP_DECLARE(void) ap_process_request_after_handler(request_rec *r)
|
|||||||
b = ap_bucket_eor_create(c->bucket_alloc, r);
|
b = ap_bucket_eor_create(c->bucket_alloc, r);
|
||||||
APR_BRIGADE_INSERT_HEAD(bb, b);
|
APR_BRIGADE_INSERT_HEAD(bb, b);
|
||||||
|
|
||||||
|
/* Find the last request, taking into account internal
|
||||||
|
* redirects. We want to send the EOR bucket at the end of
|
||||||
|
* all the buckets so it does not jump the queue.
|
||||||
|
*/
|
||||||
|
while (r->next) {
|
||||||
|
r = r->next;
|
||||||
|
}
|
||||||
|
|
||||||
ap_pass_brigade(r->output_filters, bb);
|
ap_pass_brigade(r->output_filters, bb);
|
||||||
|
|
||||||
/* The EOR bucket has either been handled by an output filter (eg.
|
/* The EOR bucket has either been handled by an output filter (eg.
|
||||||
|
Reference in New Issue
Block a user