diff options
author | Mark Young <marky@lunarg.com> | 2017-02-03 16:27:42 -0700 |
---|---|---|
committer | Mark Young <marky@lunarg.com> | 2017-02-03 16:27:42 -0700 |
commit | 56bf9519fbfe9b82166b29c9796b226160661889 (patch) | |
tree | 34d683ad25a2df14ad8fda2c8e5e297cd87b1d70 /loader | |
parent | 93a74b2bba3fa1421634981549ad9820452a5aa4 (diff) |
loader: gh1449 - Fix mem leak on CTS
Fix a memory leak in the CTS test which fails randomly during
the vkCreateInstance call.
Change-Id: Ie72feac730d3854cb2af9e13a3687aa43081bfd5
Diffstat (limited to 'loader')
-rw-r--r-- | loader/loader.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/loader/loader.c b/loader/loader.c index 81c37c4c..b6adbb10 100644 --- a/loader/loader.c +++ b/loader/loader.c @@ -5046,15 +5046,17 @@ VkResult setupLoaderTermPhysDevs(struct loader_instance *inst) { out: if (VK_SUCCESS != res) { - if (NULL != inst->phys_devs_term) { - // We've encountered an error, so we should free the - // new buffers. + if (NULL != new_phys_devs) { + // We've encountered an error, so we should free the new buffers. for (uint32_t i = 0; i < inst->total_gpu_count; i++) { loader_instance_heap_free(inst, new_phys_devs[i]); } + loader_instance_heap_free(inst, new_phys_devs); + } + if (NULL != inst->phys_devs_term) { loader_instance_heap_free(inst, inst->phys_devs_term); - inst->total_gpu_count = 0; } + inst->total_gpu_count = 0; } else { // Free everything that didn't carry over to the new array of // physical devices. Everything else will have been copied over |