From e24a8168189b8343ed2176f78fd92c8a4ec49c5c Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Sun, 18 Sep 2022 16:04:22 -0700 Subject: [PATCH] radv: Fix file descriptor leak. Fix defect reported by Coverity Scan. Resource leak (RESOURCE_LEAK) leaked_storage: Variable file going out of scope leaks the storage it points to. Fixes: 57498067540 ("radv: Add Radeon Raytracing Analyzer trace dumping utilities") Suggested-by: Samuel Pitoiset Signed-off-by: Vinson Lee Reviewed-by: Samuel Pitoiset Part-of: --- src/amd/vulkan/radv_rra.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/amd/vulkan/radv_rra.c b/src/amd/vulkan/radv_rra.c index 3560d8e..4c6e33d 100644 --- a/src/amd/vulkan/radv_rra.c +++ b/src/amd/vulkan/radv_rra.c @@ -1056,7 +1056,7 @@ radv_rra_dump_trace(VkQueue vk_queue, char *filename) struct rra_accel_struct_copy copy = {0}; result = rra_init_acceleration_structure_copy(vk_device, queue->vk.queue_family_index, ©); if (result != VK_SUCCESS) - goto fail; + goto init_fail; uint32_t struct_count = _mesa_hash_table_num_entries(device->rra_trace.accel_structs); hash_entries = malloc(sizeof(*hash_entries) * struct_count); @@ -1114,12 +1114,12 @@ radv_rra_dump_trace(VkQueue vk_queue, char *filename) /* All info is available, dump header now */ fseek(file, 0, SEEK_SET); rra_dump_header(file, chunk_info_offset, file_end - chunk_info_offset); - - fclose(file); copy_fail: radv_DestroyBuffer(vk_device, copy.buffer, NULL); radv_FreeMemory(vk_device, copy.memory, NULL); vk_common_DestroyCommandPool(vk_device, copy.pool, NULL); +init_fail: + fclose(file); fail: free(hash_entries); free(accel_struct_offsets); -- 2.7.4