diff --git a/indexer/editable_map_object.cpp b/indexer/editable_map_object.cpp index db2c5c760a..e79685484e 100644 --- a/indexer/editable_map_object.cpp +++ b/indexer/editable_map_object.cpp @@ -202,6 +202,9 @@ bool EditableMapObject::ValidateBuildingLevels(string const & buildingLevels) if (buildingLevels.size() > 18 /* max number of digits in uint_64 */) return false; + if ('0' == buildingLevels.front()) + return false; + uint64_t levels; return strings::to_uint64(buildingLevels, levels) && levels > 0 && levels <= kMaximumLevelsEditableByUsers; } diff --git a/indexer/indexer_tests/editable_map_object_test.cpp b/indexer/indexer_tests/editable_map_object_test.cpp index 332c0f2858..a41380c42a 100644 --- a/indexer/indexer_tests/editable_map_object_test.cpp +++ b/indexer/indexer_tests/editable_map_object_test.cpp @@ -29,6 +29,7 @@ UNIT_TEST(EditableMapObject_ValidateBuildingLevels) TEST(EditableMapObject::ValidateBuildingLevels("17"), ()); TEST(EditableMapObject::ValidateBuildingLevels("25"), ()); TEST(!EditableMapObject::ValidateBuildingLevels("0"), ()); + TEST(!EditableMapObject::ValidateBuildingLevels("005"), ()); TEST(!EditableMapObject::ValidateBuildingLevels("26"), ()); TEST(!EditableMapObject::ValidateBuildingLevels("22a"), ()); TEST(!EditableMapObject::ValidateBuildingLevels("a22"), ());