Skip to content

Commit d981d94

Browse files
committed
Fixes
1 parent 9469eed commit d981d94

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

src/provider/provider_tracking.c

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -323,14 +323,17 @@ static umf_result_t umfMemoryTrackerRemove(umf_memory_tracker_handle_t hTracker,
323323
return UMF_RESULT_ERROR_UNKNOWN;
324324
}
325325

326+
void *pool = (void *)value->pool;
327+
size_t size = value->size;
328+
326329
assert(level < MAX_LEVELS_OF_ALLOC_SEGMENT_MAP);
327330
critnib_release(hTracker->alloc_segments_map[level], ref_value);
328331
value = critnib_remove(hTracker->alloc_segments_map[level], (uintptr_t)ptr);
329332
assert(value);
330333

331334
LOG_DEBUG("memory region removed: tracker=%p, level=%i, pool=%p, ptr=%p, "
332335
"size=%zu",
333-
(void *)hTracker, level, (void *)value->pool, ptr, value->size);
336+
(void *)hTracker, level, pool, ptr, size);
334337

335338
if (parent_value) {
336339
LOG_DEBUG(
@@ -1067,6 +1070,12 @@ static umf_result_t trackingGetIpcHandle(void *provider, const void *ptr,
10671070
}
10681071
}
10691072
}
1073+
1074+
if (!cached && ref_value) {
1075+
critnib_release(p->ipcCache, &ref_value);
1076+
ref_value = NULL;
1077+
}
1078+
10701079
} while (!cached);
10711080

10721081
memcpy(providerIpcData, cache_value->providerIpcData,

0 commit comments

Comments
 (0)