From 6ebb5f9dfb1c3f6a2be267cd533c54fdfefbc993 Mon Sep 17 00:00:00 2001 From: Benety Goh Date: Thu, 10 Jun 2021 16:39:58 -0400 Subject: SERVER-57350 fix ShardKeyPattern::parseShardKeyPattern() to handle int values in key patterns that are out of bounds --- src/mongo/s/shard_key_pattern.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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> 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)); } -- cgit v1.2.1