From c2df0a13157044fd32f9d602d72efc8bf47407a2 Mon Sep 17 00:00:00 2001 From: Chris Hennes Date: Thu, 20 Mar 2025 21:31:30 -0500 Subject: [PATCH] TD: Ensure WalkerEdge is fully initialized Coverity thinks that the edge_t is not getting fully initialized, so add a constructor to WalkerEdge that ensures the two components in question are set to zero (resulting in an invalid edge). --- src/Mod/TechDraw/App/EdgeWalker.cpp | 7 +++++++ src/Mod/TechDraw/App/EdgeWalker.h | 7 ++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/Mod/TechDraw/App/EdgeWalker.cpp b/src/Mod/TechDraw/App/EdgeWalker.cpp index a1775037d4..ae3d5b0af7 100644 --- a/src/Mod/TechDraw/App/EdgeWalker.cpp +++ b/src/Mod/TechDraw/App/EdgeWalker.cpp @@ -450,6 +450,13 @@ std::vector EdgeWalker::getEmbeddingRow(int v) //******************************************* // WalkerEdge Methods //******************************************* +WalkerEdge::WalkerEdge() +{ + // Ensure the edge is properly initialized (Coverity defect 316559) + ed.m_source = 0; + ed.m_target = 0; +} + bool WalkerEdge::isEqual(WalkerEdge w) { if ((v1 == w.v1 && v2 == w.v2) || diff --git a/src/Mod/TechDraw/App/EdgeWalker.h b/src/Mod/TechDraw/App/EdgeWalker.h index 98bbf37fb6..726f449026 100644 --- a/src/Mod/TechDraw/App/EdgeWalker.h +++ b/src/Mod/TechDraw/App/EdgeWalker.h @@ -71,14 +71,15 @@ using planar_embedding_t = class TechDrawExport WalkerEdge { public: + WalkerEdge(); static bool weCompare(WalkerEdge i, WalkerEdge j); bool isEqual(WalkerEdge w); std::string dump(); - std::size_t v1; - std::size_t v2; + std::size_t v1 {0}; + std::size_t v2 {0}; edge_t ed; - std::size_t idx; + std::size_t idx {0}; }; class TechDrawExport ewWire