Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArsentiy Milchakov <a.milchakov@corp.mail.ru>2016-06-29 17:07:06 +0300
committerArsentiy Milchakov <a.milchakov@corp.mail.ru>2016-06-29 17:07:06 +0300
commit25e165062fa13f4a94a05071be023799598743b4 (patch)
tree795fd384ac8f90f18a7eceed51bd271004d08a97 /indexer
parentcd6395349a25803dfbee006001eea5939ec15ec9 (diff)
prohibit leading zeros in floor count field
Diffstat (limited to 'indexer')
-rw-r--r--indexer/editable_map_object.cpp3
-rw-r--r--indexer/indexer_tests/editable_map_object_test.cpp1
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"), ());