From 4eccfc86b5e4a393b43bb4fc12791042d0a52639 Mon Sep 17 00:00:00 2001 From: Magne Sjaastad Date: Mon, 2 Jun 2025 15:29:46 +0200 Subject: [PATCH] Make sure std::equal is executed on valid range of vectors Previous solution did not check for equal length of these vectors, causing out of bounds compare. Detected by debug build using MSVC --- .../Application/Tools/RiaCurveMerger.inl | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/ApplicationLibCode/Application/Tools/RiaCurveMerger.inl b/ApplicationLibCode/Application/Tools/RiaCurveMerger.inl index b56590738c..fe0c96b0e0 100644 --- a/ApplicationLibCode/Application/Tools/RiaCurveMerger.inl +++ b/ApplicationLibCode/Application/Tools/RiaCurveMerger.inl @@ -77,16 +77,9 @@ void RiaCurveMerger::addCurveData( const std::vector& xV } else { - if ( m_isXValuesSharedBetweenCurves ) - { - const auto& firstXValues = m_originalValues.front().first; - m_isXValuesSharedBetweenCurves = std::equal( firstXValues.begin(), firstXValues.end(), xValues.begin() ); - } - - if ( m_isXValuesMonotonicallyIncreasing ) - { - m_isXValuesMonotonicallyIncreasing = isMonotonicallyIncreasing( xValues ); - } + const auto& firstXValues = m_originalValues.front().first; + m_isXValuesSharedBetweenCurves &= std::equal( firstXValues.begin(), firstXValues.end(), xValues.begin(), xValues.end() ); + m_isXValuesMonotonicallyIncreasing &= isMonotonicallyIncreasing( xValues ); } m_originalValues.push_back( std::make_pair( xValues, yValues ) ); }