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; } }