From e1855739b2373d50c028e165b00439c86d722fac Mon Sep 17 00:00:00 2001 From: Mark Lobodzinski Date: Thu, 11 Jun 2015 16:11:20 -0500 Subject: layers: Fix memtracker segfault for ill-behaved apps Freeing object memory before destroying object resulted in a segfault. This is illegal but shouldn't crash the layer. --- layers/mem_tracker.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/layers/mem_tracker.cpp b/layers/mem_tracker.cpp index a0f45bcd..44fc5d95 100644 --- a/layers/mem_tracker.cpp +++ b/layers/mem_tracker.cpp @@ -430,6 +430,10 @@ static void reportMemReferencesAndCleanUp( /* TODO: Would be nice to return the actual object type */ log_msg(mdd(pMemObjInfo->object), VK_DBG_REPORT_INFO_BIT, (VkObjectType) 0, (*it), 0, MEMTRACK_NONE, "MEM", "VK Object %p still has a reference to mem obj %p", (*it), pMemObjInfo->mem); + + // Found an object referencing this memory, remove its pointer to this memobj + MT_OBJ_INFO *pObjInfo = get_object_info(*it); + pObjInfo->pMemObjInfo = NULL; } // Clear the list of hanging references pMemObjInfo->pObjBindings.clear(); -- cgit v1.2.3