diff options
author | David Storch <david.storch@10gen.com> | 2017-10-11 13:49:55 -0400 |
---|---|---|
committer | David Storch <david.storch@10gen.com> | 2017-10-11 17:12:11 -0400 |
commit | e7390933e152d8e6f00c90ac341f691780c261fd (patch) | |
tree | 2c5082d2dd6b683328f6ad3e4d561c63d9dea1e5 | |
parent | b7d82c65d4389b0c01f68e9ad14a9c7c21e3d5b5 (diff) | |
download | mongo-e7390933e152d8e6f00c90ac341f691780c261fd.tar.gz |
SERVER-31516 Fix improper initialization of empty NamespaceString.
-rw-r--r-- | src/mongo/db/namespace_string-inl.h | 2 | ||||
-rw-r--r-- | src/mongo/db/namespace_string_test.cpp | 12 |
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{}); +} } |