aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVadim Yanitskiy <axilirator@gmail.com>2018-07-30 03:09:22 +0700
committerVadim Yanitskiy <axilirator@gmail.com>2018-07-30 04:11:20 +0700
commit9fdb85417467d85ab213f5e689b8693ebdb81f7f (patch)
tree3e8d819677c5d0e73408331a0b3dcbd2504815d6
parent4793a7efc34e1e5945b8adc7ee344406db61fd53 (diff)
hlr.c: track the use of talloc NULL memory contexts
Tracking NULL memory contexts allows one to detect memory chunks allocated outside the application's root context, which in most cases are the result of some mistake. For example, the VTY implementation still uses the NULL context, so we have to clean up it manually until this is fixed. At the moment we have at least one chunk allocated outside the application's root context (excluding the VTY context): full talloc report on 'null_context' (total 24 bytes in 2 blocks) struct lookup_helper contains 24 bytes in 1 blocks Change-Id: I7ea86730e090c06b2a5966ae4d04b8144b1cd20a
-rw-r--r--src/hlr.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/hlr.c b/src/hlr.c
index 6c0cb0a..8732587 100644
--- a/src/hlr.c
+++ b/src/hlr.c
@@ -551,6 +551,9 @@ int main(int argc, char **argv)
{
int rc;
+ /* Track the use of talloc NULL memory contexts */
+ talloc_enable_null_tracking();
+
hlr_ctx = talloc_named_const(NULL, 1, "OsmoHLR");
msgb_talloc_ctx_init(hlr_ctx, 0);
vty_info.tall_ctx = hlr_ctx;
@@ -632,5 +635,15 @@ int main(int argc, char **argv)
talloc_report_full(hlr_ctx, stderr);
talloc_free(hlr_ctx);
+ /* FIXME: VTY code still uses NULL-context */
+ talloc_free(tall_vty_ctx);
+
+ /**
+ * Report the heap state of NULL context, then free,
+ * so both ASAN and Valgrind are happy...
+ */
+ talloc_report_full(NULL, stderr);
+ talloc_disable_null_tracking();
+
return 0;
}