diff --git a/indexer/feature_merger.cpp b/indexer/feature_merger.cpp index e017d130a0..a88eb1779a 100644 --- a/indexer/feature_merger.cpp +++ b/indexer/feature_merger.cpp @@ -2,6 +2,8 @@ //#include "../base/logging.hpp" +#define MAX_MERGED_POINTS_COUNT 10000 + FeatureBuilder1Merger::FeatureBuilder1Merger(FeatureBuilder1 const & fb) : FeatureBuilder1(fb) { @@ -17,6 +19,12 @@ bool FeatureBuilder1Merger::MergeWith(FeatureBuilder1 const & fb) if (fb.m_Types != m_Types) return false; + // do not create too long features + if (m_Geometry.size() > MAX_MERGED_POINTS_COUNT) + return false; + if (fb.m_Geometry.size() > MAX_MERGED_POINTS_COUNT) + return false; + // check last-first points equality //if (m2::AlmostEqual(m_Geometry.back(), fb.m_Geometry.front())) if (m_Geometry.back() == fb.m_Geometry.front())