From 7715b3b398323e52746fcbdc26a0173cfdc06136 Mon Sep 17 00:00:00 2001 From: Jatin Chaudhary Date: Thu, 2 Mar 2023 13:35:42 +0000 Subject: [PATCH] SWDEV-386435 - Add checks for memfree graph node Change-Id: I8eab93046723f0fdc01f95e3bfb9071d84eb2e18 --- hipamd/src/hip_graph.cpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/hipamd/src/hip_graph.cpp b/hipamd/src/hip_graph.cpp index fddc49b020..c4504d4c87 100644 --- a/hipamd/src/hip_graph.cpp +++ b/hipamd/src/hip_graph.cpp @@ -2188,12 +2188,23 @@ hipError_t hipGraphMemAllocNodeGetParams(hipGraphNode_t node, hipMemAllocNodePar // ================================================================================================ hipError_t hipGraphAddMemFreeNode(hipGraphNode_t* pGraphNode, hipGraph_t graph, - const hipGraphNode_t* pDependencies, size_t numDependencies, void* dev_ptr) { + const hipGraphNode_t* pDependencies, size_t numDependencies, + void* dev_ptr) { HIP_INIT_API(hipGraphAddMemFreeNode, pGraphNode, graph, pDependencies, numDependencies, dev_ptr); if (pGraphNode == nullptr || graph == nullptr || - (numDependencies > 0 && pDependencies == nullptr) || dev_ptr == nullptr) { + ((numDependencies > 0 && pDependencies == nullptr) || + (pDependencies != nullptr && numDependencies == 0)) || + dev_ptr == nullptr) { HIP_RETURN(hipErrorInvalidValue); } + + // Is memory passed to be free'd valid + size_t offset = 0; + amd::Memory* memory_object = getMemoryObject(dev_ptr, offset); + if (memory_object == nullptr) { + HIP_RETURN(hipErrorInvalidValue); + } + auto mem_free_node = new hipGraphMemFreeNode(dev_ptr); *pGraphNode = mem_free_node; auto status = ihipGraphAddNode(*pGraphNode, graph, pDependencies, numDependencies);