From aac6a3a4b83d52290f1047eacf532c59c52c3966 Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Thu, 1 Oct 2026 15:16:44 +0200 Subject: [PATCH] Fix crash when material/particle function has invalid graph output index --- .../Particles/Graph/GPU/ParticleEmitterGraph.GPU.Particles.cpp | 2 +- .../Tools/MaterialGenerator/MaterialGenerator.Material.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Source/Engine/Particles/Graph/GPU/ParticleEmitterGraph.GPU.Particles.cpp b/Source/Engine/Particles/Graph/GPU/ParticleEmitterGraph.GPU.Particles.cpp index 6ae810d82..aaae6432c 100644 --- a/Source/Engine/Particles/Graph/GPU/ParticleEmitterGraph.GPU.Particles.cpp +++ b/Source/Engine/Particles/Graph/GPU/ParticleEmitterGraph.GPU.Particles.cpp @@ -461,7 +461,7 @@ void ParticleEmitterGPUGenerator::ProcessGroupParticles(Box* box, Node* node, Va // Peek the function output (function->Outputs maps the functions outputs to output nodes indices) const int32 outputIndex = box->ID - 16; - if (outputIndex < 0 || outputIndex >= function->Outputs.Count()) + if (!function->Outputs.IsValidIndex(outputIndex) || !graph->Nodes.IsValidIndex(function->Outputs[outputIndex])) { OnError(node, box, TEXT("Invalid function output box.")); value = Value::Zero; diff --git a/Source/Engine/Tools/MaterialGenerator/MaterialGenerator.Material.cpp b/Source/Engine/Tools/MaterialGenerator/MaterialGenerator.Material.cpp index 481cf2df7..b60d9d389 100644 --- a/Source/Engine/Tools/MaterialGenerator/MaterialGenerator.Material.cpp +++ b/Source/Engine/Tools/MaterialGenerator/MaterialGenerator.Material.cpp @@ -323,7 +323,7 @@ void MaterialGenerator::ProcessGroupMaterial(Box* box, Node* node, Value& value) // Peek the function output (function->Outputs maps the functions outputs to output nodes indices) const int32 outputIndex = box->ID - 16; - if (outputIndex < 0 || outputIndex >= function->Outputs.Count()) + if (!function->Outputs.IsValidIndex(outputIndex) || !graph->Nodes.IsValidIndex(function->Outputs[outputIndex])) { OnError(node, box, TEXT("Invalid function output box.")); value = Value::Zero;