diff options
author | Robert Guo <robert.guo@10gen.com> | 2016-03-22 17:10:50 -0400 |
---|---|---|
committer | Robert Guo <robert.guo@10gen.com> | 2016-03-29 13:08:43 -0400 |
commit | e242b49373f0a9ee39f2b02f1a766a84c2c869b6 (patch) | |
tree | 3eaf08b0a85cbfde4b041f944001232d5e55e6e6 /src/mongo/db/namespace_string-inl.h | |
parent | ea07e34466f14b127ac97f58ec6a40e9e52ebbd5 (diff) | |
download | mongo-e242b49373f0a9ee39f2b02f1a766a84c2c869b6.tar.gz |
SERVER-22577 disallow creation of databases containing $ on mmapv1
Diffstat (limited to 'src/mongo/db/namespace_string-inl.h')
-rw-r--r-- | src/mongo/db/namespace_string-inl.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/mongo/db/namespace_string-inl.h b/src/mongo/db/namespace_string-inl.h index 8e8808fb9b8..7bb98f81086 100644 --- a/src/mongo/db/namespace_string-inl.h +++ b/src/mongo/db/namespace_string-inl.h @@ -54,7 +54,7 @@ inline bool NamespaceString::special(StringData ns) { return !normal(ns) || ns.substr(ns.find('.')).startsWith(".system."); } -inline bool NamespaceString::validDBName(StringData db) { +inline bool NamespaceString::validDBName(StringData db, DollarInDbNameBehavior behavior) { if (db.size() == 0 || db.size() > 64) return false; @@ -67,6 +67,10 @@ inline bool NamespaceString::validDBName(StringData db) { case ' ': case '"': return false; + case '$': + if (behavior == DollarInDbNameBehavior::Disallow) + return false; + continue; #ifdef _WIN32 // We prohibit all FAT32-disallowed characters on Windows case '*': |