diff options
author | Arsentiy Milchakov <a.milchakov@corp.mail.ru> | 2016-06-29 17:07:06 +0300 |
---|---|---|
committer | Arsentiy Milchakov <a.milchakov@corp.mail.ru> | 2016-06-29 17:07:06 +0300 |
commit | 25e165062fa13f4a94a05071be023799598743b4 (patch) | |
tree | 795fd384ac8f90f18a7eceed51bd271004d08a97 /indexer | |
parent | cd6395349a25803dfbee006001eea5939ec15ec9 (diff) |
prohibit leading zeros in floor count field
Diffstat (limited to 'indexer')
-rw-r--r-- | indexer/editable_map_object.cpp | 3 | ||||
-rw-r--r-- | indexer/indexer_tests/editable_map_object_test.cpp | 1 |
2 files changed, 4 insertions, 0 deletions
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"), ()); |