diff options
author | Luke Seelenbinder <me@lukeseelenbinder.com> | 2020-04-16 21:54:39 +0200 |
---|---|---|
committer | Luke Seelenbinder <me@lukeseelenbinder.com> | 2020-04-16 21:54:39 +0200 |
commit | 52ade30fa5365d165cf81cc4a35da20d97347247 (patch) | |
tree | 7f851de2cd52fcd3f711efbf37113a72774c14c0 | |
parent | a71e672dfaef8a5cdb13f2331b2e6e74c182ac45 (diff) | |
download | qtlocation-mapboxgl-52ade30fa5365d165cf81cc4a35da20d97347247.tar.gz |
Fix segfault resulting from an invalid geometry.
-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 d996041ebe..ae0f96c8ac 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) { |