From: Mukund Sivaraman Date: Wed, 9 May 2018 06:21:22 +0000 (+0530) Subject: Don't keep around debuglist structs when done X-Git-Tag: v9.13.0~23^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3adcc033f6d36957e4f67a94465aa551e07bda2c;p=thirdparty%2Fbind9.git Don't keep around debuglist structs when done --- diff --git a/lib/isc/mem.c b/lib/isc/mem.c index a5f88c5c8f7..ff541d54162 100644 --- a/lib/isc/mem.c +++ b/lib/isc/mem.c @@ -395,17 +395,6 @@ add_trace_entry(isc__mem_t *mctx, const void *ptr, size_t size FLARG) { hash = isc_hash_function(&ptr, sizeof(ptr), ISC_TRUE, NULL); idx = hash % DEBUG_TABLE_COUNT; - dl = ISC_LIST_TAIL(mctx->debuglist[idx]); - if (ISC_LIKELY(dl != NULL && dl->ptr == NULL)) { - ISC_LIST_UNLINK(mctx->debuglist[idx], dl, link); - dl->ptr = ptr; - dl->size = size; - dl->file = file; - dl->line = line; - ISC_LIST_PREPEND(mctx->debuglist[idx], dl, link); - return; - } - dl = malloc(sizeof(debuglink_t)); INSIST(dl != NULL); mctx->malloced += sizeof(debuglink_t); @@ -444,14 +433,11 @@ delete_trace_entry(isc__mem_t *mctx, const void *ptr, size_t size, idx = hash % DEBUG_TABLE_COUNT; dl = ISC_LIST_HEAD(mctx->debuglist[idx]); - while (ISC_LIKELY(dl != NULL && dl->ptr != NULL)) { + while (ISC_LIKELY(dl != NULL)) { if (ISC_UNLIKELY(dl->ptr == ptr)) { ISC_LIST_UNLINK(mctx->debuglist[idx], dl, link); - dl->ptr = NULL; - dl->size = 0; - dl->file = NULL; - dl->line = 0; - ISC_LIST_APPEND(mctx->debuglist[idx], dl, link); + mctx->malloced -= sizeof(*dl); + free(dl); return; } dl = ISC_LIST_NEXT(dl, link);