summaryrefslogtreecommitdiffstats
path: root/server/eor_bucket.c
diff options
context:
space:
mode:
authorStefan Fritsch <sf@apache.org>2010-06-14 21:07:02 +0200
committerStefan Fritsch <sf@apache.org>2010-06-14 21:07:02 +0200
commitc1e908605507bb1fade55d35a517997584a044d1 (patch)
treed1e4cb1720d5937dfbc4e1daed118b8dd85eb3d8 /server/eor_bucket.c
parentprevent an error message if an old autoconf without AC_PROG_CC_C99 is used but (diff)
downloadapache2-c1e908605507bb1fade55d35a517997584a044d1.tar.xz
apache2-c1e908605507bb1fade55d35a517997584a044d1.zip
Change the eor bucket to use a pre-cleanup to run the log transaction hook.
This fixes some segfaults. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@954590 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to '')
-rw-r--r--server/eor_bucket.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/server/eor_bucket.c b/server/eor_bucket.c
index b758bc9243..4d3e1ecfbe 100644
--- a/server/eor_bucket.c
+++ b/server/eor_bucket.c
@@ -73,9 +73,10 @@ AP_DECLARE(apr_bucket *) ap_bucket_eor_create(apr_bucket_alloc_t *list,
* e.g. the parent pool of the request pool. In this case
* eor_bucket_destroy might be called at a point of time when the
* request pool had been already destroyed.
+ * We need to use a pre-cleanup here because a module may create a
+ * sub-pool which is still needed during the log_transaction hook.
*/
- apr_pool_cleanup_register(r->pool, (void *)b, eor_bucket_cleanup,
- apr_pool_cleanup_null);
+ apr_pool_pre_cleanup_register(r->pool, (void *)b, eor_bucket_cleanup);
}
return ap_bucket_eor_make(b, r);
}