From 6b69946b9e29a383e2fb48724d333ac80983832a Mon Sep 17 00:00:00 2001 From: Michael Krasnyk Date: Sun, 3 Apr 2016 19:29:35 +0200 Subject: [PATCH] Fixes using uninitialised values in extractRouteNames Conditional jump or move depends on uninitialised value(s) at 0x5FEE48: osrm::engine::RouteNames osrm::engine::extractRouteNames, osrm::engine::detail::Segment>(std::vector >&, std::vector >&, osrm::engine::datafacade::BaseDataFacade const*) (route_name_extraction.hpp:127) by 0x61A1B2: osrm::engine::ApiResponseGenerator >::DescribeRoute(osrm::engine::RouteParameters const&, osrm::engine::InternalRouteResult const&, osrm::util::json::Object&) (api_response_generator.hpp:173) by 0x61AF47: osrm::engine::plugins::ViaRoutePlugin >::HandleRequest(osrm::engine::RouteParameters const&, osrm::util::json::Object&) (viaroute.hpp:144) by 0x61EEEC: osrm::engine::Engine::RunQuery(osrm::engine::RouteParameters const&, osrm::util::json::Object&) (engine.cpp:100) by 0x5AE585: osrm::OSRM::RunQuery(osrm::engine::RouteParameters const&, osrm::util::json::Object&) (osrm.cpp:19) by 0x5A8E07: main (in /home/miha/work/foss/osrm-backend/build.example/osrm-example) --- include/engine/route_name_extraction.hpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/include/engine/route_name_extraction.hpp b/include/engine/route_name_extraction.hpp index 7fd598ca8..490155a8f 100644 --- a/include/engine/route_name_extraction.hpp +++ b/include/engine/route_name_extraction.hpp @@ -124,10 +124,6 @@ RouteNames extractRouteNames(std::vector &shortest_path_segments, { std::swap(shortest_segment_1, shortest_segment_2); } - if (alternative_segment_1.position > alternative_segment_2.position) - { - std::swap(alternative_segment_1, alternative_segment_2); - } // fetching names for the selected segments route_names.shortest_path_name_1 = facade->get_name_for_id(shortest_segment_1.name_id); @@ -135,6 +131,11 @@ RouteNames extractRouteNames(std::vector &shortest_path_segments, if (!alternative_path_segments.empty()) { + if (alternative_segment_1.position > alternative_segment_2.position) + { + std::swap(alternative_segment_1, alternative_segment_2); + } + route_names.alternative_path_name_1 = facade->get_name_for_id(alternative_segment_1.name_id); route_names.alternative_path_name_2 =