diff options
author | Dane Springmeyer <dane@mapbox.com> | 2016-05-04 10:12:15 -0700 |
---|---|---|
committer | Dane Springmeyer <dane@mapbox.com> | 2016-05-04 10:12:15 -0700 |
commit | 0c6bce2819c688bb8d7fb3cff02c10d4e218d0fe (patch) | |
tree | a88e1e2e2358d7affe3edf93e28d3ff92bbe8623 | |
parent | 433ca3026b1550daafa655817f065e8506f0699a (diff) | |
download | qtlocation-mapboxgl-0c6bce2819c688bb8d7fb3cff02c10d4e218d0fe.tar.gz |
[core] consistently protect against invalid tag encoding in vector tile
-rw-r--r-- | src/mbgl/tile/vector_tile.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/mbgl/tile/vector_tile.cpp b/src/mbgl/tile/vector_tile.cpp index aedb703898..25314c114c 100644 --- a/src/mbgl/tile/vector_tile.cpp +++ b/src/mbgl/tile/vector_tile.cpp @@ -96,6 +96,9 @@ std::unordered_map<std::string,Value> VectorTileFeature::getProperties() const { const auto & end_itr = tags_iter.second; while (start_itr != end_itr) { uint32_t tag_key = static_cast<uint32_t>(*start_itr++); + if (start_itr == end_itr) { + throw std::runtime_error("uneven number of feature tag ids"); + } uint32_t tag_val = static_cast<uint32_t>(*start_itr++); properties[layer.keys.at(tag_key)] = layer.values.at(tag_val); } |