From 0c4307f86e425347f71eda6d10297c363b6f59da Mon Sep 17 00:00:00 2001 From: Tao Sang Date: Fri, 28 Oct 2022 21:10:52 -0400 Subject: [PATCH] SWDEV-363038 - Fix hipGraphKernelNodeSetParams Fix crash in hipGraphKernelNodeSetParams where paremeters are taken from hipGraphKernelNodeGetParams. Change-Id: I2216f72f4d4de6dd3766343b0d821cb3d35d7853 --- hipamd/src/hip_graph_internal.hpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/hipamd/src/hip_graph_internal.hpp b/hipamd/src/hip_graph_internal.hpp index 76077f5792..51f0b59a0a 100644 --- a/hipamd/src/hip_graph_internal.hpp +++ b/hipamd/src/hip_graph_internal.hpp @@ -685,7 +685,8 @@ class hipGraphKernelNode : public hipGraphNode { } void GetParams(hipKernelNodeParams* params) { - std::memcpy(params, pKernelParams_, sizeof(hipKernelNodeParams)); + *params = *pKernelParams_; + } hipError_t SetParams(const hipKernelNodeParams* params) { @@ -695,6 +696,13 @@ class hipGraphKernelNode : public hipGraphNode { ClPrint(amd::LOG_ERROR, amd::LOG_CODE, "[hipGraph] Failed to validateKernelParams"); return status; } + if (pKernelParams_ && ((pKernelParams_->kernelParams + && pKernelParams_->kernelParams == params->kernelParams) + || (pKernelParams_->extra && pKernelParams_->extra == params->extra))) { + // params is copied from pKernelParams_ and then updated, so just copy it back + *pKernelParams_ = *params; + return status; + } freeParams(); pKernelParams_ = new hipKernelNodeParams(*params); status = copyParams(params);