Open Source Routing Machine - C++ backend
Go to file
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
cmake Squashed 'third_party/libosmium/' content from commit 2282c84 2016-03-01 17:56:55 +01:00
config new cucumber profile for Jenkins that doesn't fail because of an old Gherkin bug 2014-03-24 14:29:19 +01:00
docker No longer install osmosis in docker env 2016-01-13 17:57:22 +01:00
example Remove boost fusion dependency in RouteParameters 2016-01-26 22:57:02 +01:00
features Remove #line checks, it seems to be dependent on the boost version 2016-03-01 19:19:31 +01:00
include Fixes critical error in table plugin accessing uninitialized memory 2016-03-03 02:00:39 +01:00
profiles Merge pull request #1818 from gardster/side_road_tag_support 2016-01-11 17:10:42 +01:00
scripts Update dependency script to libosmium 2.6.1 2016-03-01 17:10:20 +01:00
src Limit tile zoomlevel to 12+ 2016-03-02 19:59:49 +01:00
test Squashed 'third_party/libosmium/' content from commit 2282c84 2016-03-01 17:56:55 +01:00
third_party Merge commit '8511256779228db8d2ffed7ccced2b53c70be248' as 'third_party/libosmium' 2016-03-01 17:56:55 +01:00
unit_tests Formats all the files we touch.. 2016-03-01 23:51:25 +01:00
.clang-format don't binpack parameters on 100 column width 2014-04-21 17:40:05 +02:00
.clang-tidy Integration scripts for Clang's Modernize and Tidy tool. 2015-09-22 17:32:32 +02:00
.cncc.style Add simple cncc file 2016-01-05 12:06:33 +01:00
.gitignore Squashed 'third_party/libosmium/' content from commit 2282c84 2016-03-01 17:56:55 +01:00
.gitmodules Removing Docs submodule 2012-12-26 18:29:16 +01:00
.travis.yml Use XCode 7.3 on Travis 2016-03-01 23:50:43 +01:00
appveyor-build.bat Fix AppVayor tests 2016-01-04 11:15:37 +01:00
appveyor.yml Squashed 'third_party/libosmium/' content from commit 2282c84 2016-03-01 17:56:55 +01:00
build-local.bat Remove commented out line in windows build script. History is what git is for. 2015-11-19 15:02:42 -05:00
CHANGELOG.md Squashed 'third_party/libosmium/' content from commit 2282c84 2016-03-01 17:56:55 +01:00
CMakeLists.txt Enable decltype-based result_of type alias 2016-03-01 23:51:26 +01:00
Doxyfile.in Use Readme.md as mainpage untill we have something better. 2015-09-22 16:26:21 +02:00
Gemfile change copyright line from personal names to project 2015-02-19 09:19:51 +01:00
Gemfile.lock upgrade to cucumber 2.0 2015-04-30 18:15:46 +02:00
LICENCE.TXT We are at 2016 for the license 2016-01-04 18:13:05 +01:00
profile.lua readding profile.lua 2013-07-02 22:51:21 +02:00
Rakefile Fixes Rakefile wrt. osrm-contract 2016-03-01 16:43:34 +01:00
README.md Squashed 'third_party/libosmium/' content from commit 2282c84 2016-03-01 17:56:55 +01:00
taginfo.json Add taginfo checker script and update taginfo 2016-01-26 07:01:11 +01:00

About

The Open Source Routing Machine is a high performance routing engine written in C++11 designed to run on OpenStreetMap data.

Current build status

build config branch status
Linux  master Build Status
Linux  develop Build Status
Windows master/develop Build status
LUAbind fork  master Build Status

Building

For instructions on how to build and run OSRM, please consult the Wiki.

To quickly try OSRM use our free and daily updated online service

Documentation

See the Wiki's server API documentation as well as the library API documentation

References in publications

When using the code in a (scientific) publication, please cite

@inproceedings{luxen-vetter-2011,
 author = {Luxen, Dennis and Vetter, Christian},
 title = {Real-time routing with OpenStreetMap data},
 booktitle = {Proceedings of the 19th ACM SIGSPATIAL International Conference on Advances in Geographic Information Systems},
 series = {GIS '11},
 year = {2011},
 isbn = {978-1-4503-1031-4},
 location = {Chicago, Illinois},
 pages = {513--516},
 numpages = {4},
 url = {http://doi.acm.org/10.1145/2093973.2094062},
 doi = {10.1145/2093973.2094062},
 acmid = {2094062},
 publisher = {ACM},
 address = {New York, NY, USA},
}