diff options
author | Jeremy Allison <jra@samba.org> | 2013-08-27 12:46:09 -0700 |
---|---|---|
committer | Karolin Seeger <kseeger@samba.org> | 2015-03-15 22:14:07 +0100 |
commit | a49237cbb92e52929232046fb05d62e7f66e2ac8 (patch) | |
tree | 399d0c60b84632dd51f946b25592795a4b467222 | |
parent | ddde41cd74cf37cddd27b4a83f154134a291aa1a (diff) | |
download | samba-a49237cbb92e52929232046fb05d62e7f66e2ac8.tar.gz |
Change _talloc_total_mem_internal() to ignore memory allocated from a pool when calculating limit size.
We must only count normal tallocs, or a talloc pool itself.
Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Simo Sorce <idra@samba.org>
(cherry picked from commit 4159a78ed7eda340758e22286f16186987a20f2f)
-rw-r--r-- | lib/talloc/talloc.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/lib/talloc/talloc.c b/lib/talloc/talloc.c index 7b827ca0c15..1e25dfde4e1 100644 --- a/lib/talloc/talloc.c +++ b/lib/talloc/talloc.c @@ -1817,7 +1817,14 @@ static size_t _talloc_total_mem_internal(const void *ptr, break; case TOTAL_MEM_LIMIT: if (likely(tc->name != TALLOC_MAGIC_REFERENCE)) { - total = tc->size + TC_HDR_SIZE; + /* + * Don't count memory allocated from a pool + * when calculating limits. Only count the + * pool itself. + */ + if (!(tc->flags & TALLOC_FLAG_POOLMEM)) { + total = tc->size + TC_HDR_SIZE; + } } break; } |