--- a/src/server/daemon/resourcepool.c Sat Mar 25 17:18:51 2023 +0100 +++ b/src/server/daemon/resourcepool.c Fri May 05 18:02:11 2023 +0200 @@ -39,7 +39,7 @@ static CxMap *resource_pool_types; int init_resource_pools(void) { - resource_pool_types = cxHashMapCreate(cxDefaultAllocator, 4); + resource_pool_types = cxHashMapCreate(cxDefaultAllocator, CX_STORE_POINTERS, 4); return resource_pool_types ? 0 : 1; } @@ -179,7 +179,7 @@ if(resource) { if(request && session) { if(!request->resources) { - request->resources = cxHashMapCreate(pool_allocator(session->sn.pool), 8); + request->resources = cxHashMapCreate(pool_allocator(session->sn.pool), CX_STORE_POINTERS, 8); } if(request->resources) { @@ -226,7 +226,7 @@ if(nsapi_rq && !nsapi_rq->finished) { // request processing still ongoing and SAFs will be executed - if(!cxMapRemove(nsapi_rq->resources, cx_hash_key_str(respool->name))) { + if(!cxMapRemoveAndGet(nsapi_rq->resources, cx_hash_key_str(respool->name))) { log_ereport(LOG_FAILURE, "resourcepool_free: cannot remove resource from request: potential double free"); } }