[apr] Fix potential dereference of a null pointer when apr_pool_create_ex() is called without both an allocator and a parent while global_pool is uninitialized.

This commit is contained in:
Andrey Volk 2020-02-19 14:27:36 +04:00
parent b3348c2dca
commit 3a7d96f04b
1 changed files with 10 additions and 1 deletions

View File

@ -821,8 +821,17 @@ APR_DECLARE(apr_status_t) apr_pool_create_ex(apr_pool_t **newpool,
if (!abort_fn && parent)
abort_fn = parent->abort_fn;
if (allocator == NULL)
if (allocator == NULL) {
if (!parent) {
/* There is no way to continue without an allocator when no parent */
if (abort_fn)
abort_fn(APR_EINVAL);
return APR_EINVAL;
}
allocator = parent->allocator;
}
if ((node = allocator_alloc(allocator,
MIN_ALLOC - APR_MEMNODE_T_SIZE)) == NULL) {