diff options
author | Stefan Fritsch <sf@apache.org> | 2013-05-10 20:58:54 +0000 |
---|---|---|
committer | Stefan Fritsch <sf@apache.org> | 2013-05-10 20:58:54 +0000 |
commit | 1623683414b385ec487ce17f12d52f73d6d55d72 (patch) | |
tree | 7212a14256f4372adcf5f95bc8c9eee9429d5f79 /memory | |
parent | 6de6453d48dfbb11b2ca5d2bee3dbe290f0abb7f (diff) | |
download | apr-1623683414b385ec487ce17f12d52f73d6d55d72.tar.gz |
Pool debugging fixes
- avoid using a destroyed mutex in apr_pool_clear()
- if we create a sub-pool, we don't need to own the pool.
git-svn-id: https://svn.apache.org/repos/asf/apr/apr/trunk@1481186 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'memory')
-rw-r--r-- | memory/unix/apr_pools.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/memory/unix/apr_pools.c b/memory/unix/apr_pools.c index 871e9fc23..45b2be2ca 100644 --- a/memory/unix/apr_pools.c +++ b/memory/unix/apr_pools.c @@ -1742,6 +1742,11 @@ APR_DECLARE(void) apr_pool_clear_debug(apr_pool_t *pool, * the mutex we obtained above. */ if (mutex != pool->mutex) { + /* + * Prevent apr_palloc() in apr_thread_mutex_create() from trying to + * use the destroyed mutex. + */ + pool->mutex = NULL; (void)apr_thread_mutex_create(&pool->mutex, APR_THREAD_MUTEX_NESTED, pool); @@ -1818,7 +1823,7 @@ APR_DECLARE(apr_status_t) apr_pool_create_ex_debug(apr_pool_t **newpool, parent = global_pool; } else { - apr_pool_check_integrity(parent); + apr_pool_check_lifetime(parent); if (!allocator) allocator = parent->allocator; |