Fixed string_ref usage bug in epee::from_hex::vector

This commit is contained in:
Lee Clagett 2020-02-28 17:42:28 -05:00
parent 7c74e1919e
commit f9441c5759
2 changed files with 6 additions and 3 deletions

View file

@ -141,7 +141,7 @@ namespace epee
result.reserve(count / 2); result.reserve(count / 2);
// the data to work with (std::string is always null-terminated) // the data to work with (std::string is always null-terminated)
auto data = src.data(); auto data = src.begin();
// convert a single hex character to an unsigned integer // convert a single hex character to an unsigned integer
auto char_to_int = [](const char *input) { auto char_to_int = [](const char *input) {
@ -167,9 +167,9 @@ namespace epee
}; };
// keep going until we reach the end // keep going until we reach the end
while (data[0] != '\0') { while (data != src.end()) {
// skip unwanted characters // skip unwanted characters
if (!include(data[0])) { if (!include(*data)) {
++data; ++data;
continue; continue;
} }

View file

@ -841,6 +841,9 @@ TEST(HexLocale, String)
// decoding it this way also, ignoring spaces and colons between the numbers // decoding it this way also, ignoring spaces and colons between the numbers
hex.assign("00:ff 0f:f0"); hex.assign("00:ff 0f:f0");
EXPECT_EQ(source, epee::from_hex_locale::to_vector(hex)); EXPECT_EQ(source, epee::from_hex_locale::to_vector(hex));
hex.append("f0");
EXPECT_EQ(source, epee::from_hex_locale::to_vector(boost::string_ref{hex.data(), hex.size() - 2}));
} }
TEST(ToHex, Array) TEST(ToHex, Array)