talloc_stack: report lazy freeing (panic if DEVELOPER).
commit84fb37fe372bc22e0a3ceca8030bff459225044a
authorRusty Russell <rusty@rustcorp.com.au>
Tue, 17 Jul 2012 19:27:31 +0000 (18 04:57 +0930)
committerRusty Russell <rusty@rustcorp.com.au>
Tue, 17 Jul 2012 19:27:31 +0000 (18 04:57 +0930)
tree6441b5162da2cedfc39d4b954366f3d4a05df5aa
parentf9b51ff33e10aa126de848072e98b0bf36a7dbc7
talloc_stack: report lazy freeing (panic if DEVELOPER).

talloc_stackframe() stacks, so if you forget to free one, the outer
one will free it.  However, it's not a good idea to rely too heavily
on this behaviour: it can lead to delays in the release of memory or
destructors.

I had an elaborate hack to make sure every talloc_stackframe() was
freed in the exact same function it was allocated, however all bugs it
caught were simply lazy freeing, so this patch just checks for that.

This doesn't check for stackframes we don't free up on exit: that would
be nice, but uncovers some uncomfortable (but probably harmless) cases.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
lib/util/talloc_stack.c