From 6d7ea787921f3b378c3cb94d142c79f89babd418 Mon Sep 17 00:00:00 2001 From: Kyungjoon Ko Date: Sun, 10 Aug 2025 01:45:30 -0700 Subject: [PATCH] Fix SEGV write in Assimp::SortByPTypeProcess::Execute (#6318) * Fix OOB Write in Assimp::SortByPTypeProcess::Execute --- code/PostProcessing/SortByPTypeProcess.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/code/PostProcessing/SortByPTypeProcess.cpp b/code/PostProcessing/SortByPTypeProcess.cpp index ce601054c..e4bffa6a4 100644 --- a/code/PostProcessing/SortByPTypeProcess.cpp +++ b/code/PostProcessing/SortByPTypeProcess.cpp @@ -188,12 +188,15 @@ void SortByPTypeProcess::Execute(aiScene *pScene) { unsigned int numPolyVerts = 0; for (; pFirstFace != pLastFace; ++pFirstFace) { - if (pFirstFace->mNumIndices <= 3) + if (pFirstFace->mNumIndices >= 1 && pFirstFace->mNumIndices <= 3) ++aiNumPerPType[pFirstFace->mNumIndices - 1]; else { ++aiNumPerPType[3]; numPolyVerts += pFirstFace->mNumIndices; } + if (pFirstFace->mNumIndices == 0) { + ASSIMP_LOG_WARN("Face with 0 indices treated as polygon"); + } } VertexWeightTable *avw = ComputeVertexBoneWeightTable(mesh);