diff --git a/rtc_base/stringencode.cc b/rtc_base/stringencode.cc index df981b04a1..fc4e3bc8e7 100644 --- a/rtc_base/stringencode.cc +++ b/rtc_base/stringencode.cc @@ -60,9 +60,9 @@ char hex_encode(unsigned char val) { bool hex_decode(char ch, unsigned char* val) { if ((ch >= '0') && (ch <= '9')) { *val = ch - '0'; - } else if ((ch >= 'A') && (ch <= 'Z')) { + } else if ((ch >= 'A') && (ch <= 'F')) { *val = (ch - 'A') + 10; - } else if ((ch >= 'a') && (ch <= 'z')) { + } else if ((ch >= 'a') && (ch <= 'f')) { *val = (ch - 'a') + 10; } else { return false; diff --git a/rtc_base/stringencode_unittest.cc b/rtc_base/stringencode_unittest.cc index 9bdc592c29..f21c4cb78c 100644 --- a/rtc_base/stringencode_unittest.cc +++ b/rtc_base/stringencode_unittest.cc @@ -141,7 +141,8 @@ TEST_F(HexEncodeTest, TestDecodeTooShort) { // Test that decoding non-hex data fails. TEST_F(HexEncodeTest, TestDecodeBogusData) { - dec_res_ = hex_decode_with_delimiter(decoded_, sizeof(decoded_), "xyz", 3, 0); + dec_res_ = + hex_decode_with_delimiter(decoded_, sizeof(decoded_), "axyz", 4, 0); ASSERT_EQ(0U, dec_res_); }