aboutsummaryrefslogtreecommitdiffstats
path: root/src/counter.c
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2019-03-20 11:39:40 +0100
committerHarald Welte <laforge@osmocom.org>2021-02-04 18:32:00 +0100
commitf269f6d1d5dee177251cd2468b76a90ff677a4d5 (patch)
tree690e79c434600ac3ddcbce77ce97d8d03c9f14c4 /src/counter.c
parentd11a5d5b9a636ce5e16d688c5303eeac8be45e8c (diff)
make use of OTC_GLOBAL when allocating library-internal contexts
As libosmcore is now managing the global talloc contexts, there's no point in having APIs where the user tells the library about which talloc contexts to use for a given sub-system. However, completely ignoring the talloc contexts passed in by existing applications would unfortunately break LeakSanitizer. It appears to track if any dynamically allocated pointeres are not stored anywhere, and that would be exactly the situation created here. So the new behavior is: Use the context passed in by an application, and fall back to the library-internal OTC_GLOBAL if none is passed in. Change-Id: I48f475efd3ee0d5120b8fc30861e852d1a6920b1
Diffstat (limited to 'src/counter.c')
-rw-r--r--src/counter.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/counter.c b/src/counter.c
index 0fa31661..482dfc29 100644
--- a/src/counter.c
+++ b/src/counter.c
@@ -1,7 +1,7 @@
/*! \file counter.c
* utility routines for keeping some statistics. */
/*
- * (C) 2009 by Harald Welte <laforge@gnumonks.org>
+ * (C) 2009,2019 by Harald Welte <laforge@gnumonks.org>
*
* All Rights Reserved
*
@@ -39,8 +39,12 @@ void *tall_ctr_ctx;
* \returns Allocated counter on success; NULL on error */
struct osmo_counter *osmo_counter_alloc(const char *name)
{
- struct osmo_counter *ctr = talloc_zero(tall_ctr_ctx, struct osmo_counter);
+ struct osmo_counter *ctr;
+
+ if (!tall_ctr_ctx)
+ tall_ctr_ctx = talloc_named_const(OTC_GLOBAL, 0, "osmo_counter");
+ ctr = talloc_zero(tall_ctr_ctx, struct osmo_counter);
if (!ctr)
return NULL;