[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:
parent
b3348c2dca
commit
3a7d96f04b
|
@ -821,8 +821,17 @@ APR_DECLARE(apr_status_t) apr_pool_create_ex(apr_pool_t **newpool,
|
||||||
if (!abort_fn && parent)
|
if (!abort_fn && parent)
|
||||||
abort_fn = parent->abort_fn;
|
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;
|
allocator = parent->allocator;
|
||||||
|
}
|
||||||
|
|
||||||
if ((node = allocator_alloc(allocator,
|
if ((node = allocator_alloc(allocator,
|
||||||
MIN_ALLOC - APR_MEMNODE_T_SIZE)) == NULL) {
|
MIN_ALLOC - APR_MEMNODE_T_SIZE)) == NULL) {
|
||||||
|
|
Loading…
Reference in New Issue