summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenety Goh <benety@mongodb.com>2021-06-10 16:39:58 -0400
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2021-06-10 21:27:16 +0000
commit6ebb5f9dfb1c3f6a2be267cd533c54fdfefbc993 (patch)
tree5c6bec95331ae0eb92df9c8482bfbc6b88a4a2d2
parent256ee9bcd971b86bb2b26c7da3993540697c00ed (diff)
downloadmongo-6ebb5f9dfb1c3f6a2be267cd533c54fdfefbc993.tar.gz
SERVER-57350 fix ShardKeyPattern::parseShardKeyPattern() to handle int values in key patterns that are out of bounds
-rw-r--r--src/mongo/s/shard_key_pattern.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/mongo/s/shard_key_pattern.cpp b/src/mongo/s/shard_key_pattern.cpp
index d3ea4fe8ed8..27ddb80e6ad 100644
--- a/src/mongo/s/shard_key_pattern.cpp
+++ b/src/mongo/s/shard_key_pattern.cpp
@@ -99,7 +99,7 @@ std::vector<std::unique_ptr<FieldRef>> parseShardKeyPattern(const BSONObj& keyPa
<< " can contain at most one 'hashed' field, and/or multiple "
"numerical fields set to a value of 1. Failed to parse field "
<< patternEl.fieldNameStringData(),
- (patternEl.isNumber() && patternEl.numberInt() == 1) ||
+ (patternEl.isNumber() && patternEl.safeNumberInt() == 1) ||
(isHashedPattern && numHashedFields == 1));
parsedPaths.emplace_back(std::move(newFieldRef));
}