diff options
author | luigi1111 <luigi1111w@gmail.com> | 2020-04-21 08:38:21 -0500 |
---|---|---|
committer | luigi1111 <luigi1111w@gmail.com> | 2020-04-21 08:38:21 -0500 |
commit | 06c81b6527be94c66a31a0ec23c56c5a2d602b69 (patch) | |
tree | 203f8daecbea5c41a63b55470baeeaeefb189922 | |
parent | Merge pull request #6332 (diff) | |
parent | Fixed string_ref usage bug in epee::from_hex::vector (diff) | |
download | monero-06c81b6527be94c66a31a0ec23c56c5a2d602b69.tar.xz |
Merge pull request #6359
f9441c5 Fixed string_ref usage bug in epee::from_hex::vector (vtnerd)
-rw-r--r-- | contrib/epee/src/hex.cpp | 6 | ||||
-rw-r--r-- | tests/unit_tests/epee_utils.cpp | 3 |
2 files changed, 6 insertions, 3 deletions
diff --git a/contrib/epee/src/hex.cpp b/contrib/epee/src/hex.cpp index b25ce5421..b53efe6b8 100644 --- a/contrib/epee/src/hex.cpp +++ b/contrib/epee/src/hex.cpp @@ -141,7 +141,7 @@ namespace epee result.reserve(count / 2); // 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 auto char_to_int = [](const char *input) { @@ -167,9 +167,9 @@ namespace epee }; // keep going until we reach the end - while (data[0] != '\0') { + while (data != src.end()) { // skip unwanted characters - if (!include(data[0])) { + if (!include(*data)) { ++data; continue; } diff --git a/tests/unit_tests/epee_utils.cpp b/tests/unit_tests/epee_utils.cpp index 42bbb26bb..4f42140b3 100644 --- a/tests/unit_tests/epee_utils.cpp +++ b/tests/unit_tests/epee_utils.cpp @@ -841,6 +841,9 @@ TEST(HexLocale, String) // decoding it this way also, ignoring spaces and colons between the numbers hex.assign("00:ff 0f:f0"); 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) |