From d4b33fd808be2062270c4b51a96947160c17f77b Mon Sep 17 00:00:00 2001 From: tdcosta100 Date: Sat, 31 Dec 2022 14:01:55 -0300 Subject: [PATCH] Fix memory access violation exception in vector_tile_data.cpp (#632) --- src/mbgl/tile/vector_tile_data.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/mbgl/tile/vector_tile_data.cpp b/src/mbgl/tile/vector_tile_data.cpp index b0290d4d4..232f2481d 100644 --- a/src/mbgl/tile/vector_tile_data.cpp +++ b/src/mbgl/tile/vector_tile_data.cpp @@ -1,5 +1,6 @@ #include #include +#include namespace mbgl { @@ -40,7 +41,15 @@ FeatureIdentifier VectorTileFeature::getID() const { const GeometryCollection& VectorTileFeature::getGeometries() const { if (!lines) { const auto scale = static_cast(util::EXTENT) / feature.getExtent(); - lines = feature.getGeometries(scale); + + try { + lines = feature.getGeometries(scale); + } + catch(const std::runtime_error& ex) { + Log::Error(Event::ParseTile, "Could not get geometries: %s", ex.what()); + lines = GeometryCollection(); + } + if (feature.getVersion() < 2 && feature.getType() == mapbox::vector_tile::GeomType::POLYGON) { lines = fixupPolygons(*lines); }