diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/mongo/db/storage/wiredtiger/wiredtiger_util.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/mongo/db/storage/wiredtiger/wiredtiger_util.cpp b/src/mongo/db/storage/wiredtiger/wiredtiger_util.cpp index 44ca755d63c..0f784c367ab 100644 --- a/src/mongo/db/storage/wiredtiger/wiredtiger_util.cpp +++ b/src/mongo/db/storage/wiredtiger/wiredtiger_util.cpp @@ -257,6 +257,11 @@ Status WiredTigerUtil::checkTableCreationOptions(const BSONElement& configElem) ErrorAccumulator eventHandler(&errors); StringData config = configElem.valueStringData(); + // Do NOT allow embedded null characters + if (config.size() != strlen(config.rawData())) { + return {ErrorCodes::FailedToParse, "malformed 'configString' value."}; + } + Status status = wtRCToStatus( wiredtiger_config_validate(nullptr, &eventHandler, "WT_SESSION.create", config.rawData())); if (!status.isOK()) { |