From 958be3dee6d7bcc10e9b776e8c78643193842578 Mon Sep 17 00:00:00 2001 From: mvglasow Date: Sat, 26 Jul 2025 16:58:40 +0300 Subject: [PATCH] [traffxml] Fix segfault when deleting the last vector element v.erase(v.end()) is incorrect and will crash on clang but works on gcc Signed-off-by: mvglasow --- traffxml/traff_decoder.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/traffxml/traff_decoder.cpp b/traffxml/traff_decoder.cpp index 8838d1689..2db984d31 100644 --- a/traffxml/traff_decoder.cpp +++ b/traffxml/traff_decoder.cpp @@ -779,7 +779,7 @@ void RoutingTraffDecoder::DecodeLocationDirection(traffxml::TraffMessage & messa while(!rsegments.empty() && rsegments.front().GetSegment().GetMwmId() == routing::kFakeNumMwmId) rsegments.erase(rsegments.begin()); while(!rsegments.empty() && rsegments.back().GetSegment().GetMwmId() == routing::kFakeNumMwmId) - rsegments.erase(rsegments.end()); + rsegments.pop_back(); if (!backwards && message.m_location.value().m_at && !message.m_location.value().m_to) // from–at in forward direction, add last segment