summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Seelenbinder <me@lukeseelenbinder.com>2020-04-16 21:54:39 +0200
committerThiago Marcos P. Santos <tmpsantos@gmail.com>2020-04-17 16:50:11 +0300
commit40cfb77b7d3b7c51999290f28f0b4735fa086976 (patch)
tree58b54e4e6b4215a4f4abfc4c0ea6ae7bbef09c56
parent0d0ae229eb1d2078fe7fac5bb22dc8ea909f9014 (diff)
downloadqtlocation-mapboxgl-40cfb77b7d3b7c51999290f28f0b4735fa086976.tar.gz
Fix segfault resulting from an invalid geometry.
-rw-r--r--src/mbgl/layout/symbol_layout.cpp7
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) {