summaryrefslogtreecommitdiff
path: root/src/mongo/db
diff options
context:
space:
mode:
authorHannes Magnusson <bjori@php.net>2016-08-17 13:31:37 -0400
committerKyle Suarez <kyle.suarez@mongodb.com>2016-08-17 13:37:49 -0400
commit0badd5ad405743848c74ca0011cb0bc76613cf77 (patch)
treecf05a7e7ca15ae842625e0a63a105c1f8e852c57 /src/mongo/db
parentd25e46c8f1bbbebaca2d8ecba255c214b9200138 (diff)
downloadmongo-0badd5ad405743848c74ca0011cb0bc76613cf77.tar.gz
SERVER-25557 Database names must be less than 64 bytes
Closes #1108 Signed-off-by: Kyle Suarez <kyle.suarez@mongodb.com>
Diffstat (limited to 'src/mongo/db')
-rw-r--r--src/mongo/db/namespace_string-inl.h2
-rw-r--r--src/mongo/db/namespace_string_test.cpp5
2 files changed, 6 insertions, 1 deletions
diff --git a/src/mongo/db/namespace_string-inl.h b/src/mongo/db/namespace_string-inl.h
index 569eddaeb57..0ff45fca39e 100644
--- a/src/mongo/db/namespace_string-inl.h
+++ b/src/mongo/db/namespace_string-inl.h
@@ -57,7 +57,7 @@ inline bool NamespaceString::virtualized(StringData ns) {
}
inline bool NamespaceString::validDBName(StringData db, DollarInDbNameBehavior behavior) {
- if (db.size() == 0 || db.size() > 64)
+ if (db.size() == 0 || db.size() >= 64)
return false;
for (StringData::const_iterator iter = db.begin(), end = db.end(); iter != end; ++iter) {
diff --git a/src/mongo/db/namespace_string_test.cpp b/src/mongo/db/namespace_string_test.cpp
index db44e5b3148..cd5e535d7ee 100644
--- a/src/mongo/db/namespace_string_test.cpp
+++ b/src/mongo/db/namespace_string_test.cpp
@@ -128,6 +128,11 @@ TEST(NamespaceStringTest, DatabaseValidNames) {
ASSERT(!NamespaceString::validDBName("foo?bar"));
#endif
+ ASSERT(NamespaceString::validDBName(
+ "ThisIsADatabaseNameThatBrokeAllRecordsForValidLengthForDBName63"));
+ ASSERT(!NamespaceString::validDBName(
+ "WhileThisDatabaseNameExceedsTheMaximumLengthForDatabaseNamesof63"));
+
ASSERT(NamespaceString::normal("asdads"));
ASSERT(!NamespaceString::normal("asda$ds"));
ASSERT(NamespaceString::normal("local.oplog.$main"));