summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Storch <david.storch@10gen.com>2017-10-11 13:49:55 -0400
committerDavid Storch <david.storch@10gen.com>2017-10-11 17:12:11 -0400
commite7390933e152d8e6f00c90ac341f691780c261fd (patch)
tree2c5082d2dd6b683328f6ad3e4d561c63d9dea1e5
parentb7d82c65d4389b0c01f68e9ad14a9c7c21e3d5b5 (diff)
downloadmongo-e7390933e152d8e6f00c90ac341f691780c261fd.tar.gz
SERVER-31516 Fix improper initialization of empty NamespaceString.
-rw-r--r--src/mongo/db/namespace_string-inl.h2
-rw-r--r--src/mongo/db/namespace_string_test.cpp12
2 files changed, 13 insertions, 1 deletions
diff --git a/src/mongo/db/namespace_string-inl.h b/src/mongo/db/namespace_string-inl.h
index c3bb251b98f..a9fce83e12f 100644
--- a/src/mongo/db/namespace_string-inl.h
+++ b/src/mongo/db/namespace_string-inl.h
@@ -118,7 +118,7 @@ inline bool NamespaceString::validCollectionName(StringData coll) {
return true;
}
-inline NamespaceString::NamespaceString() : _ns(), _dotIndex(0) {}
+inline NamespaceString::NamespaceString() : _ns(), _dotIndex(std::string::npos) {}
inline NamespaceString::NamespaceString(StringData nsIn) {
_ns = nsIn.toString(); // copy to our buffer
_dotIndex = _ns.find('.');
diff --git a/src/mongo/db/namespace_string_test.cpp b/src/mongo/db/namespace_string_test.cpp
index 9de487b1327..c32c2c7bef8 100644
--- a/src/mongo/db/namespace_string_test.cpp
+++ b/src/mongo/db/namespace_string_test.cpp
@@ -392,4 +392,16 @@ TEST(NamespaceStringTest, makeListIndexesNSIsCorrect) {
ASSERT(ns.isListIndexesCursorNS());
ASSERT_EQUALS(NamespaceString("DB.COLL"), ns.getTargetNSForListIndexes());
}
+
+TEST(NamespaceStringTest, EmptyNSStringReturnsEmptyColl) {
+ NamespaceString nss{};
+ ASSERT_TRUE(nss.isEmpty());
+ ASSERT_EQ(nss.coll(), StringData{});
+}
+
+TEST(NamespaceStringTest, EmptyNSStringReturnsEmptyDb) {
+ NamespaceString nss{};
+ ASSERT_TRUE(nss.isEmpty());
+ ASSERT_EQ(nss.db(), StringData{});
+}
}