diff options
author | Volker Lendecke <vl@samba.org> | 2008-01-10 11:35:17 +0100 |
---|---|---|
committer | Volker Lendecke <vl@samba.org> | 2008-01-10 12:28:20 +0100 |
commit | 0272b46515b4c4515d5cad8e86fab61d8e91e29e (patch) | |
tree | abf6ab1f81f3f5d8c3dbd04223e8e317ee96f87f /source/lib/talloc | |
parent | d89e42f1d2faa018c584025296d6be8195cbcf20 (diff) | |
download | samba-0272b46515b4c4515d5cad8e86fab61d8e91e29e.tar.gz samba-0272b46515b4c4515d5cad8e86fab61d8e91e29e.tar.xz samba-0272b46515b4c4515d5cad8e86fab61d8e91e29e.zip |
talloc_free_children can only reset pool if it's empty
Diffstat (limited to 'source/lib/talloc')
-rw-r--r-- | source/lib/talloc/talloc.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/source/lib/talloc/talloc.c b/source/lib/talloc/talloc.c index ea4480286e3..8683e361a61 100644 --- a/source/lib/talloc/talloc.c +++ b/source/lib/talloc/talloc.c @@ -866,7 +866,8 @@ void talloc_free_children(void *ptr) } } - if (tc->flags & TALLOC_FLAG_POOL) { + if ((tc->flags & TALLOC_FLAG_POOL) + && (*talloc_pool_objectcount(tc) == 1)) { tc->pool = ((char *)tc + TC_HDR_SIZE + TALLOC_POOL_HDR_SIZE); #if defined(DEVELOPER) && defined(VALGRIND_MAKE_MEM_NOACCESS) VALGRIND_MAKE_MEM_NOACCESS( |