From fd5e05ca6b2a7c7f4a514481f0937079787d0d1d Mon Sep 17 00:00:00 2001 From: Ashley Newson Date: Sat, 8 Nov 2025 16:41:14 +0000 Subject: [PATCH] Fix rare PointsChirality infinite loop Under some inputs, MatrixUtils.PointsChirality could enter into an infinite loop consuming memory until an OOM occurs. This was due to the FloodFill-based operation endlessly propagate zero values. This adds a defensive check to prevent propagating zero values. --- OpenRA.Mods.Common/MapGenerator/MatrixUtils.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OpenRA.Mods.Common/MapGenerator/MatrixUtils.cs b/OpenRA.Mods.Common/MapGenerator/MatrixUtils.cs index 2d686002f5..f42c199a2d 100644 --- a/OpenRA.Mods.Common/MapGenerator/MatrixUtils.cs +++ b/OpenRA.Mods.Common/MapGenerator/MatrixUtils.cs @@ -1078,7 +1078,7 @@ namespace OpenRA.Mods.Common.MapGenerator if (prop == FirstPassSentinel) return chirality[point]; - if (chirality[point] != 0) + if (chirality[point] != 0 || prop == 0) return null; chirality[point] = prop; return prop;