From: Aram Sargsyan Date: Wed, 31 Aug 2022 12:30:38 +0000 (+0000) Subject: Add mctx attach/detach when creating/destroying a memory pool X-Git-Tag: v9.19.5~17^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e97c3eea954e055634b72c21325d2611e960ee94;p=thirdparty%2Fbind9.git Add mctx attach/detach when creating/destroying a memory pool This should make sure that the memory context is not destroyed before the memory pool, which is using the context. --- diff --git a/lib/isc/mem.c b/lib/isc/mem.c index b2e53a31e18..f828672119e 100644 --- a/lib/isc/mem.c +++ b/lib/isc/mem.c @@ -1183,8 +1183,6 @@ isc__mempool_create(isc_mem_t *restrict mctx, const size_t element_size, mpctx = isc_mem_get(mctx, sizeof(isc_mempool_t)); *mpctx = (isc_mempool_t){ - .magic = MEMPOOL_MAGIC, - .mctx = mctx, .size = size, .freemax = 1, .fillcount = 1, @@ -1197,6 +1195,9 @@ isc__mempool_create(isc_mem_t *restrict mctx, const size_t element_size, } #endif /* ISC_MEM_TRACKLINES */ + isc_mem_attach(mctx, &mpctx->mctx); + mpctx->magic = MEMPOOL_MAGIC; + *mpctxp = (isc_mempool_t *)mpctx; MCTXLOCK(mctx); @@ -1266,7 +1267,7 @@ isc__mempool_destroy(isc_mempool_t **restrict mpctxp FLARG) { mpctx->magic = 0; - isc_mem_put(mpctx->mctx, mpctx, sizeof(isc_mempool_t)); + isc_mem_putanddetach(&mpctx->mctx, mpctx, sizeof(isc_mempool_t)); } void *