From 0bdb497c1aa31f45696a971d5b3520e7c4f4e050 Mon Sep 17 00:00:00 2001 From: Saleel Kudchadker Date: Wed, 3 Jun 2020 17:21:39 -0700 Subject: [PATCH] Fix a potential mem leak If a offset of the pointer is passed to free it may release the mem object but may not release from MemObjMap. Erase the map by getting the parent pointer. Change-Id: I06b92548de2d49b4029efe6b511329225007cc55 [ROCm/clr commit: 2b6fea4348830270cead8b319e8a2dfc49cec8f0] --- projects/clr/rocclr/device/rocm/rocdevice.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/clr/rocclr/device/rocm/rocdevice.cpp b/projects/clr/rocclr/device/rocm/rocdevice.cpp index 1892dba016..16a37f3c4c 100644 --- a/projects/clr/rocclr/device/rocm/rocdevice.cpp +++ b/projects/clr/rocclr/device/rocm/rocdevice.cpp @@ -1903,8 +1903,8 @@ void Device::svmFree(void* ptr) const { amd::Memory* svmMem = nullptr; svmMem = amd::MemObjMap::FindMemObj(ptr); if (nullptr != svmMem) { + amd::MemObjMap::RemoveMemObj(svmMem->getSvmPtr()); svmMem->release(); - amd::MemObjMap::RemoveMemObj(ptr); } }