From 93082a7c8445b21ac5957dcead20046b2b703363 Mon Sep 17 00:00:00 2001 From: jfa Date: Tue, 7 Dec 2021 11:39:02 +0300 Subject: [PATCH] [bos #26726] EDF 24466 - CheckAndImprove generates wrong result. Fix SIGSEGV on CheckCompoundOfBlocks failure. --- src/GEOM_I/GEOM_IBlocksOperations_i.cc | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/GEOM_I/GEOM_IBlocksOperations_i.cc b/src/GEOM_I/GEOM_IBlocksOperations_i.cc index 3e8d270f2..8a41e29c1 100644 --- a/src/GEOM_I/GEOM_IBlocksOperations_i.cc +++ b/src/GEOM_I/GEOM_IBlocksOperations_i.cc @@ -626,16 +626,20 @@ CORBA::Boolean GEOM_IBlocksOperations_i::CheckCompoundOfBlocks Handle(::GEOM_Object) aCompound = GetObjectImpl(theCompound); if (aCompound.IsNull()) return isComp; + GEOM::GEOM_IBlocksOperations::BCErrors_var anErrArray = + new GEOM::GEOM_IBlocksOperations::BCErrors(); + //Check std::list errList; isComp = GetOperations()->CheckCompoundOfBlocks (aCompound, theToleranceC1, errList); - if (!GetOperations()->IsDone()) + if (!GetOperations()->IsDone()) { + anErrArray->length(0); + theErrors = anErrArray._retn(); return isComp; + } const int nbErr = errList.size(); - GEOM::GEOM_IBlocksOperations::BCErrors_var anErrArray = - new GEOM::GEOM_IBlocksOperations::BCErrors(); anErrArray->length(nbErr); // fill the local CORBA array with values from lists -- 2.39.2