summaryrefslogtreecommitdiff
path: root/src/mongo
diff options
context:
space:
mode:
authorGeert Bosch <geert.bosch@mongodb.com>2020-02-11 23:20:38 +0000
committerevergreen <evergreen@mongodb.com>2020-02-11 23:20:38 +0000
commit9f5c2fc32800564f889d0f6b95e9ee40c6365f51 (patch)
tree9a791d969570089cde4f0ae26a27b2c79c35e3ed /src/mongo
parent0245f85a0d296c7084ac564ff88dfa5935803c38 (diff)
downloadmongo-9f5c2fc32800564f889d0f6b95e9ee40c6365f51.tar.gz
SERVER-42009 Forbid creation of collections with namespace names containing a $
Diffstat (limited to 'src/mongo')
-rw-r--r--src/mongo/db/catalog/database_impl.cpp3
-rw-r--r--src/mongo/db/s/config/configsvr_create_database_command.cpp3
2 files changed, 4 insertions, 2 deletions
diff --git a/src/mongo/db/catalog/database_impl.cpp b/src/mongo/db/catalog/database_impl.cpp
index 46f2b931f26..c90c6c8fc37 100644
--- a/src/mongo/db/catalog/database_impl.cpp
+++ b/src/mongo/db/catalog/database_impl.cpp
@@ -550,6 +550,9 @@ void DatabaseImpl::_checkCanCreateCollection(OperationContext* opCtx,
}
}
+ uassert(17320,
+ str::stream() << "cannot do createCollection on namespace with a $ in it: " << nss,
+ nss.ns().find('$') == std::string::npos);
uassert(14037,
"can't create user databases on a --configsvr instance",
serverGlobalParams.clusterRole != ClusterRole::ConfigServer || nss.isOnInternalDb());
diff --git a/src/mongo/db/s/config/configsvr_create_database_command.cpp b/src/mongo/db/s/config/configsvr_create_database_command.cpp
index 228652d1752..78fd446c168 100644
--- a/src/mongo/db/s/config/configsvr_create_database_command.cpp
+++ b/src/mongo/db/s/config/configsvr_create_database_command.cpp
@@ -82,8 +82,7 @@ public:
uassert(ErrorCodes::InvalidNamespace,
str::stream() << "invalid db name specified: " << dbname,
- NamespaceString::validDBName(dbname,
- NamespaceString::DollarInDbNameBehavior::Allow));
+ NamespaceString::validDBName(dbname));
// Make sure to force update of any stale metadata
ON_BLOCK_EXIT(