summaryrefslogtreecommitdiff
path: root/src/mongo/bson/json.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/bson/json.cpp')
-rw-r--r--src/mongo/bson/json.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/mongo/bson/json.cpp b/src/mongo/bson/json.cpp
index 8f6587a6eff..a2bc9872c79 100644
--- a/src/mongo/bson/json.cpp
+++ b/src/mongo/bson/json.cpp
@@ -993,10 +993,13 @@ Status JParse::regexOpt(std::string* result) {
Status JParse::regexOptCheck(StringData opt) {
MONGO_JSON_DEBUG("opt: " << opt);
std::size_t i;
+ std::string availableOptions = JOPTIONS;
for (i = 0; i < opt.size(); i++) {
- if (!match(opt[i], JOPTIONS)) {
+ std::size_t availIndex = availableOptions.find(opt[i]);
+ if (availIndex == std::string::npos) {
return parseError(string("Bad regex option: ") + opt[i]);
}
+ availableOptions.erase(availIndex, 1);
}
return Status::OK();
}