summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSulabh Mahajan <sulabh.mahajan@mongodb.com>2016-09-14 14:41:18 +1000
committerSulabh Mahajan <sulabh.mahajan@mongodb.com>2016-09-22 17:11:52 +1000
commit160344c5862ce31097253ebe55307d44c074e674 (patch)
treeac7287c711fa77c7c430a3d8eacfa117e5c4bda0 /src
parent715d30ff455e61fd9a729e6f25f578caf4970e97 (diff)
downloadmongo-160344c5862ce31097253ebe55307d44c074e674.tar.gz
SERVER-25312 Check for Null embedded malformed config string
Diffstat (limited to 'src')
-rw-r--r--src/mongo/db/storage/wiredtiger/wiredtiger_util.cpp5
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()) {