summaryrefslogtreecommitdiffstats
path: root/buckets/apr_buckets_alloc.c
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>2013-07-28 05:14:54 +0000
committerpeter <peter@FreeBSD.org>2013-07-28 05:14:54 +0000
commitb910f82d487cf989800adbd1a65b3a7f71b46277 (patch)
tree983fbc233aad0f26d3f835f8d9db270a7ddb0494 /buckets/apr_buckets_alloc.c
parenta8f6409a75aa79fd55552dae377d17f57633eb74 (diff)
downloadFreeBSD-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.c11
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;
OpenPOWER on IntegriCloud