From 7fec747d90fb4a644cc2e09e04b173e8691dde0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ferm=C3=ADn=20Olaiz?= Date: Wed, 9 Jul 2025 01:16:50 -0300 Subject: [PATCH] Fix crash on out-of-bound vector access (#22397) --- src/Mod/Sketcher/App/SketchObject.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/Mod/Sketcher/App/SketchObject.cpp b/src/Mod/Sketcher/App/SketchObject.cpp index b1a7433052..4b5d53e1cd 100644 --- a/src/Mod/Sketcher/App/SketchObject.cpp +++ b/src/Mod/Sketcher/App/SketchObject.cpp @@ -8632,9 +8632,6 @@ void SketchObject::rebuildExternalGeometry(std::optional extToAdd auto SubElements = ExternalGeometry.getSubValues(); assert(externalGeoRef.size() == Objects.size()); auto keys = externalGeoRef; - if (Types.size() != Objects.size()) { - Types.resize(Objects.size(), 0); - } // re-check for any missing geometry element. The code here has a side // effect that the linked external geometry will continue to work even if @@ -8695,6 +8692,10 @@ void SketchObject::rebuildExternalGeometry(std::optional extToAdd BRepBuilderAPI_MakeFace mkFace(sketchPlane); TopoDS_Shape aProjFace = mkFace.Shape(); + if (Types.size() != Objects.size()) { + Types.resize(Objects.size(), 0); + } + std::set refSet; // We use a vector here to keep the order (roughly) the same as ExternalGeometry std::vector > > newGeos;