diff options
Diffstat (limited to 'src/mongo/bson/json.cpp')
-rw-r--r-- | src/mongo/bson/json.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/mongo/bson/json.cpp b/src/mongo/bson/json.cpp index f5909e6c3ff..3ad943fdac3 100644 --- a/src/mongo/bson/json.cpp +++ b/src/mongo/bson/json.cpp @@ -400,7 +400,8 @@ Status JParse::binaryObject(StringData fieldName, BSONObjBuilder& builder) { // unsigned char. If we don't coerce it to an unsigned char before // wrapping it in a BinDataType (currently implicitly a signed // integer), we get undefined behavior. - const auto binDataTypeNumeric = static_cast<unsigned char>(fromHex(binDataType)); + const auto binDataTypeNumeric = + static_cast<unsigned char>(uassertStatusOK(fromHex(binDataType))); builder.appendBinData( fieldName, binData.length(), BinDataType(binDataTypeNumeric), binData.data()); @@ -1150,8 +1151,8 @@ Status JParse::chars(std::string* result, const char* terminalSet, const char* a if (!isHexString(StringData(q, 4))) { return parseError("Expecting 4 hex digits"); } - unsigned char first = fromHex(q); - unsigned char second = fromHex(q += 2); + unsigned char first = uassertStatusOK(fromHex(q)); + unsigned char second = uassertStatusOK(fromHex(q += 2)); const std::string& utf8str = encodeUTF8(first, second); for (unsigned int i = 0; i < utf8str.size(); i++) { result->push_back(utf8str[i]); |