From: Arran Cudbard-Bell Date: Thu, 27 Aug 2020 20:15:56 +0000 (-0500) Subject: pool: Produce error if we fail linking talloc ctxs X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0b7f1ac39e675376c366fbf6d855b246f330c4fa;p=thirdparty%2Ffreeradius-server.git pool: Produce error if we fail linking talloc ctxs --- diff --git a/src/lib/server/pool.c b/src/lib/server/pool.c index 31f27399487..b8eb92d1a2c 100644 --- a/src/lib/server/pool.c +++ b/src/lib/server/pool.c @@ -955,7 +955,7 @@ fr_pool_t *fr_pool_init(TALLOC_CTX *ctx, * as its parent. */ if (talloc_link_ctx(ctx, pool) < 0) { - ERROR("%s: Failed linking pool ctx", __FUNCTION__); + PERROR("%s: Failed linking pool ctx", __FUNCTION__); talloc_free(pool); return NULL; diff --git a/src/lib/util/talloc.c b/src/lib/util/talloc.c index faaae2ed561..dab1a2b8abf 100644 --- a/src/lib/util/talloc.c +++ b/src/lib/util/talloc.c @@ -91,10 +91,17 @@ fr_talloc_destructor_t *talloc_destructor_add(TALLOC_CTX *fire_ctx, TALLOC_CTX * { fr_talloc_destructor_t *d; - if (!fire_ctx) return NULL; + if (!fire_ctx) { + fr_strerror_printf("No firing ctx provided when setting destructor"); + return NULL; + } d = talloc(fire_ctx, fr_talloc_destructor_t); - if (!d) return NULL; + if (!d) { + oom: + fr_strerror_printf("Out of Memory"); + return NULL; + } d->fire = fire_ctx; d->func = func; @@ -106,7 +113,7 @@ fr_talloc_destructor_t *talloc_destructor_add(TALLOC_CTX *fire_ctx, TALLOC_CTX * ds = talloc(disarm_ctx, fr_talloc_destructor_disarm_t); if (!ds) { talloc_free(d); - return NULL; + goto oom; } ds->d = d; d->ds = ds;