diff options
-rw-r--r-- | src/mongo/db/cloner.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/mongo/db/cloner.cpp b/src/mongo/db/cloner.cpp index 10f911427d1..b7c029452e7 100644 --- a/src/mongo/db/cloner.cpp +++ b/src/mongo/db/cloner.cpp @@ -412,6 +412,16 @@ namespace mongo { LOG(2) << "\t cloner got " << collection << endl; + BSONElement collectionOptions = collection["options"]; + if ( collectionOptions.isABSONObj() ) { + Status parseOptionsStatus = CollectionOptions().parse(collectionOptions.Obj()); + if ( !parseOptionsStatus.isOK() ) { + errmsg = str::stream() << "invalid collection options: " << collection + << ", reason: " << parseOptionsStatus.reason(); + return false; + } + } + BSONElement e = collection.getField("name"); if ( e.eoo() ) { string s = "bad system.namespaces object " + collection.toString(); |