diff options
author | Luke Seelenbinder <me@lukeseelenbinder.com> | 2020-04-16 21:54:39 +0200 |
---|---|---|
committer | Thiago Marcos P. Santos <tmpsantos@gmail.com> | 2020-04-17 16:50:11 +0300 |
commit | 40cfb77b7d3b7c51999290f28f0b4735fa086976 (patch) | |
tree | 58b54e4e6b4215a4f4abfc4c0ea6ae7bbef09c56 /src | |
parent | 0d0ae229eb1d2078fe7fac5bb22dc8ea909f9014 (diff) | |
download | qtlocation-mapboxgl-40cfb77b7d3b7c51999290f28f0b4735fa086976.tar.gz |
Fix segfault resulting from an invalid geometry.
Diffstat (limited to 'src')
-rw-r--r-- | src/mbgl/layout/symbol_layout.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/mbgl/layout/symbol_layout.cpp b/src/mbgl/layout/symbol_layout.cpp index 109f1dffa8..c1eb495838 100644 --- a/src/mbgl/layout/symbol_layout.cpp +++ b/src/mbgl/layout/symbol_layout.cpp @@ -695,8 +695,11 @@ void SymbolLayout::addFeature(const std::size_t layoutFeatureIndex, } } else if (type == FeatureType::LineString) { for (const auto& line : feature.geometry) { - Anchor anchor(line[0].x, line[0].y, 0, minScale); - addSymbolInstance(anchor, createSymbolInstanceSharedData(line)); + // Skip invalid LineStrings. + if (line.size() > 0) { + Anchor anchor(line[0].x, line[0].y, 0, minScale); + addSymbolInstance(anchor, createSymbolInstanceSharedData(line)); + } } } else if (type == FeatureType::Point) { for (const auto& points : feature.geometry) { |