From b37f99a01ea47062bb501f4cdd9b9b6539ec162c Mon Sep 17 00:00:00 2001 From: Ben Goz Date: Thu, 11 Feb 2016 17:53:00 +0200 Subject: [PATCH] Fix double free issue and pointer alignment Change-Id: Id5bab454d53d404883a92282168b3f6cbc468cbb Signed-off-by: Ben Goz --- src/memory.c | 4 +--- src/topology.c | 4 ++-- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/memory.c b/src/memory.c index 08b08bd734..ee60f6d775 100644 --- a/src/memory.c +++ b/src/memory.c @@ -271,10 +271,8 @@ hsaKmtMapMemoryToGPUNodes( ret = validate_nodeid_array(&gpu_id_array, NumberOfNodes, NodeArray); - if (ret != HSAKMT_STATUS_SUCCESS) { - free(gpu_id_array); + if (ret != HSAKMT_STATUS_SUCCESS) return ret; - } ret = fmm_register_memory(MemoryAddress, MemorySizeInBytes, gpu_id_array, NumberOfNodes); diff --git a/src/topology.c b/src/topology.c index c6e55f09c3..f930c7daf9 100644 --- a/src/topology.c +++ b/src/topology.c @@ -1331,9 +1331,9 @@ HSAKMT_STATUS validate_nodeid_array(uint32_t **gpu_id_array, if (*gpu_id_array == NULL) return HSAKMT_STATUS_NO_MEMORY; for (i = 0; i < NumberOfNodes; i++) { - ret = validate_nodeid(NodeArray[i], gpu_id_array[i]); + ret = validate_nodeid(NodeArray[i], *gpu_id_array + i); if (ret != HSAKMT_STATUS_SUCCESS) { - free(gpu_id_array); + free(*gpu_id_array); break; } }