summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorReo Kimura <reo.kimura@mongodb.com>2022-10-12 21:18:59 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2022-10-12 22:29:49 +0000
commit9737fd6f30e91604cf4e2576e839b72104466d70 (patch)
tree789f7b2bdb3fe8d55fc5ac1cdb6704ff12fb49b8
parent047fb8e3fe49429f185f27dd0a50560bf39c3427 (diff)
downloadmongo-9737fd6f30e91604cf4e2576e839b72104466d70.tar.gz
SERVER-68720 Safely parse minWireVersion and maxWireVersion in initWireVersion
-rw-r--r--src/mongo/client/dbclient_connection.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/mongo/client/dbclient_connection.cpp b/src/mongo/client/dbclient_connection.cpp
index 56eb91e484c..7cb1aa813a9 100644
--- a/src/mongo/client/dbclient_connection.cpp
+++ b/src/mongo/client/dbclient_connection.cpp
@@ -213,10 +213,10 @@ executor::RemoteCommandResponse initWireVersion(
BSONObj isMasterObj = result->getCommandReply().getOwned();
- if (isMasterObj.hasField("minWireVersion") && isMasterObj.hasField("maxWireVersion")) {
- int minWireVersion = isMasterObj["minWireVersion"].numberInt();
- int maxWireVersion = isMasterObj["maxWireVersion"].numberInt();
- conn->setWireVersions(minWireVersion, maxWireVersion);
+ auto replyWireVersion = wire_version::parseWireVersionFromHelloReply(isMasterObj);
+ if (replyWireVersion.isOK()) {
+ conn->setWireVersions(replyWireVersion.getValue().minWireVersion,
+ replyWireVersion.getValue().maxWireVersion);
}
if (isMasterObj.hasField("saslSupportedMechs") &&