diff options
author | peter <peter@FreeBSD.org> | 2013-07-28 05:14:54 +0000 |
---|---|---|
committer | peter <peter@FreeBSD.org> | 2013-07-28 05:14:54 +0000 |
commit | b910f82d487cf989800adbd1a65b3a7f71b46277 (patch) | |
tree | 983fbc233aad0f26d3f835f8d9db270a7ddb0494 /buckets/apr_buckets_alloc.c | |
parent | a8f6409a75aa79fd55552dae377d17f57633eb74 (diff) | |
download | FreeBSD-src-b910f82d487cf989800adbd1a65b3a7f71b46277.zip FreeBSD-src-b910f82d487cf989800adbd1a65b3a7f71b46277.tar.gz |
Import Apache apr-util-1.5.2 into vendor staging area.
Diffstat (limited to 'buckets/apr_buckets_alloc.c')
-rw-r--r-- | buckets/apr_buckets_alloc.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/buckets/apr_buckets_alloc.c b/buckets/apr_buckets_alloc.c index 60f42de..15baa33 100644 --- a/buckets/apr_buckets_alloc.c +++ b/buckets/apr_buckets_alloc.c @@ -65,12 +65,20 @@ APU_DECLARE_NONSTD(apr_bucket_alloc_t *) apr_bucket_alloc_create(apr_pool_t *p) /* may be NULL for debug mode. */ if (allocator == NULL) { if (apr_allocator_create(&allocator) != APR_SUCCESS) { + apr_abortfunc_t fn = apr_pool_abort_get(p); + if (fn) + (fn)(APR_ENOMEM); abort(); } } #endif - list = apr_bucket_alloc_create_ex(allocator); + if (list == NULL) { + apr_abortfunc_t fn = apr_pool_abort_get(p); + if (fn) + (fn)(APR_ENOMEM); + abort(); + } list->pool = p; apr_pool_cleanup_register(list->pool, list, alloc_cleanup, apr_pool_cleanup_null); @@ -131,6 +139,7 @@ APU_DECLARE_NONSTD(void *) apr_bucket_alloc(apr_size_t size, if (endp >= active->endp) { list->blocks = apr_allocator_alloc(list->allocator, ALLOC_AMT); if (!list->blocks) { + list->blocks = active; return NULL; } list->blocks->next = active; |