diff options
author | Reo Kimura <reo.kimura@mongodb.com> | 2022-10-12 21:18:59 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2022-10-12 22:29:49 +0000 |
commit | 9737fd6f30e91604cf4e2576e839b72104466d70 (patch) | |
tree | 789f7b2bdb3fe8d55fc5ac1cdb6704ff12fb49b8 | |
parent | 047fb8e3fe49429f185f27dd0a50560bf39c3427 (diff) | |
download | mongo-9737fd6f30e91604cf4e2576e839b72104466d70.tar.gz |
SERVER-68720 Safely parse minWireVersion and maxWireVersion in initWireVersion
-rw-r--r-- | src/mongo/client/dbclient_connection.cpp | 8 |
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") && |