diff options
author | Geert Bosch <geert.bosch@mongodb.com> | 2020-02-11 23:20:38 +0000 |
---|---|---|
committer | evergreen <evergreen@mongodb.com> | 2020-02-11 23:20:38 +0000 |
commit | 9f5c2fc32800564f889d0f6b95e9ee40c6365f51 (patch) | |
tree | 9a791d969570089cde4f0ae26a27b2c79c35e3ed /src/mongo | |
parent | 0245f85a0d296c7084ac564ff88dfa5935803c38 (diff) | |
download | mongo-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.cpp | 3 | ||||
-rw-r--r-- | src/mongo/db/s/config/configsvr_create_database_command.cpp | 3 |
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( |