osrm-backend/include/engine
Daniel J. Hofmann ce1ca1b625 Fixes critical error in table plugin accessing uninitialized memory
Although we check for valid coordinates in the table plugin via
`check_all_coordinates`, we do not check for #srcs > 0 and #dsts > 0.

This would be fine as the grammar parser combines adding coordinates and
setting their `is_source` and `is_destination` property, which makes
adding coordinates without specifying source or destination impossible.

See: route_parameters.cpp, AddSource, AddDestination, and api_grammar.hpp

In contract, the Polyline codepath does not do this! In fact, it only lets
you set coordinates, but not their `is_source` or `is_destination` property.

See: route_parameters.cpp, SetCoordinatesFromGeometry

Therefore, the following queries only set coordinates:

    http 'http://localhost:5000/table?locs=s_hhFg{arEgEfEgEfEgEfEgEfEgEfEgEfEgEfEgEfEgEfE'
    http 'http://localhost:5000/table?locs=_p~iF~ps|U_ulLnnqC_mqNvxq`@'

but fail to specify sources and targets!

The distance table plugin now assumes `is_course` and `is_destination`
is the same size as `coordinates`.

And happily accesses uninitialized memory.
2016-03-03 02:00:39 +01:00
..
datafacade Properly constructs objects of type const RectangleInt2D in facades 2016-03-01 23:51:25 +01:00
guidance correct handling of travel modes 2016-02-16 01:35:04 +01:00
map_matching fixed minor typos 2016-02-18 23:05:11 -05:00
plugins Fixes critical error in table plugin accessing uninitialized memory 2016-03-03 02:00:39 +01:00
routing_algorithms Fix unpacking for self-loop nodes not in core. Fixes #1999 2016-02-21 01:38:06 +01:00
trip Run clang-format 2016-01-08 01:31:57 +01:00
api_response_generator.hpp Refactors Base64 encoding and decoding, it's almost beautiful now 2016-02-12 15:46:24 -08:00
douglas_peucker.hpp Make DouglasPeucker a free standing function 2016-01-09 19:55:21 +01:00
engine_config.hpp Create public facing libraries for extractor, contractor and datastore 2016-01-21 06:47:34 +01:00
engine.hpp Takes care of proper special member generation globally, fixes #1689 2016-01-27 17:25:30 +01:00
geospatial_query.hpp Formats all the files we touch.. 2016-03-01 23:51:25 +01:00
internal_route_result.hpp Run clang-format 2016-01-08 01:31:57 +01:00
object_encoder.hpp Dividable-by-three instead of next-dividable-by-three 2016-02-12 18:10:44 -08:00
phantom_node.hpp Be kind to the optimizer, pass coordinates by value (just two ints) 2016-01-26 22:57:02 +01:00
polyline_compressor.hpp Make PolylineCompresser's encode and decode free standing functions 2016-01-09 19:55:22 +01:00
polyline_formatter.hpp Make PolylineFormatter's encodedAsJSON and unencodedAsJSON free standing functions 2016-01-09 19:55:22 +01:00
route_name_extraction.hpp Make RouteNameExtraction a free standing function 2016-01-09 19:55:22 +01:00
route_parameters.hpp Limit tile zoomlevel to 12+ 2016-03-02 19:59:49 +01:00
search_engine_data.hpp Run clang-format 2016-01-08 01:31:57 +01:00
search_engine.hpp Run clang-format 2016-01-08 01:31:57 +01:00
segment_information.hpp Run clang-format 2016-01-08 01:31:57 +01:00