From 483f22536fa00eb23f84dc7769debdc30c514f2d Mon Sep 17 00:00:00 2001 From: sdashmiz Date: Thu, 12 Jan 2023 16:24:55 -0500 Subject: [PATCH] SWDEV-374389 - correct update dependency behaviour - nodes should belong to graph - num of passed dependency cant be larger than graph nodes Signed-off-by: sdashmiz Change-Id: Ia6f2283546bc44edee705b0483bfe506b7b1177a [ROCm/clr commit: 23edcd3e234165b7a5f5495bdf8fd5be29937b3a] --- projects/clr/hipamd/src/hip_graph.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/projects/clr/hipamd/src/hip_graph.cpp b/projects/clr/hipamd/src/hip_graph.cpp index 4b5d9e1586..74c892497e 100644 --- a/projects/clr/hipamd/src/hip_graph.cpp +++ b/projects/clr/hipamd/src/hip_graph.cpp @@ -1674,13 +1674,19 @@ hipError_t hipStreamUpdateCaptureDependencies(hipStream_t stream, hipGraphNode_t if (s->GetCaptureStatus() == hipStreamCaptureStatusNone) { HIP_RETURN(hipErrorIllegalState); } - if ((numDependencies > 0 && dependencies == nullptr) || + if ((s->GetCaptureGraph()->GetNodeCount() < numDependencies) || + (numDependencies > 0 && dependencies == nullptr) || (flags != 0 && flags != hipStreamAddCaptureDependencies && flags != hipStreamSetCaptureDependencies)) { HIP_RETURN(hipErrorInvalidValue); } std::vector depNodes; + const std::vector& graphNodes = s->GetCaptureGraph()->GetNodes(); for (int i = 0; i < numDependencies; i++) { + if ((dependencies[i] == nullptr) || + std::find(std::begin(graphNodes), std::end(graphNodes), dependencies[i]) == std::end(graphNodes)) { + HIP_RETURN(hipErrorInvalidValue); + } depNodes.push_back(dependencies[i]); } if (flags == hipStreamAddCaptureDependencies) {