From ac0445e063c290d0569a254856366d0371033b4f Mon Sep 17 00:00:00 2001 From: Mark Mueller Date: Mon, 11 Jul 2016 15:03:44 -0600 Subject: layers: Added return check for freeMemObjInfo call In FreeMemory, the return value of freeMemObjInfo was being ignored, which incorrectly allowed calls which failed validation to still be passed to lower levels. This change corrects that. Change-Id: Iddbffad22f9502061441e961daef2e7fa26a5fcf --- layers/core_validation.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'layers/core_validation.cpp') diff --git a/layers/core_validation.cpp b/layers/core_validation.cpp index cd804b81..e3ed21be 100644 --- a/layers/core_validation.cpp +++ b/layers/core_validation.cpp @@ -4760,11 +4760,13 @@ FreeMemory(VkDevice device, VkDeviceMemory mem, const VkAllocationCallbacks *pAl // undefined behavior. std::unique_lock lock(global_lock); - freeMemObjInfo(my_data, device, mem, false); + bool skip_call = freeMemObjInfo(my_data, device, mem, false); print_mem_list(my_data); printCBList(my_data); lock.unlock(); - my_data->device_dispatch_table->FreeMemory(device, mem, pAllocator); + if (!skip_call) { + my_data->device_dispatch_table->FreeMemory(device, mem, pAllocator); + } } static bool validateMemRange(layer_data *my_data, VkDeviceMemory mem, VkDeviceSize offset, VkDeviceSize size) { -- cgit v1.2.3