diff options
author | Joseph Sutton <josephsutton@catalyst.net.nz> | 2022-10-12 15:28:15 +1300 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2024-02-04 11:08:17 +0100 |
commit | 2206c22515e788f7a43cde2162408081b3e8f6ae (patch) | |
tree | c10ba4edf65823ac185fa8b86b5b9ef9b86da236 | |
parent | 90315882d6de183ab31b66b5008d4ca3d1fea140 (diff) | |
download | cmocka-2206c22515e788f7a43cde2162408081b3e8f6ae.zip cmocka-2206c22515e788f7a43cde2162408081b3e8f6ae.tar.gz cmocka-2206c22515e788f7a43cde2162408081b3e8f6ae.tar.bz2 |
cmocka: Fix assert_memory_equal() display
The %x specifier expects an unsigned argument. If char is signed,
cmocka_print_error() may incorrectly display values sign-extended. To
fix this, use an unsigned char and the corresponding format specifier
(%hhx).
Signed-off-by: Joseph Sutton <josephsutton@catalyst.net.nz>
Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
-rw-r--r-- | src/cmocka.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/cmocka.c b/src/cmocka.c index 9c1d7fc..0cbc342 100644 --- a/src/cmocka.c +++ b/src/cmocka.c @@ -1646,11 +1646,11 @@ static int memory_equal_display_error(const char* const a, const char* const b, size_t differences = 0; size_t i; for (i = 0; i < size; i++) { - const char l = a[i]; - const char r = b[i]; + const unsigned char l = a[i]; + const unsigned char r = b[i]; if (l != r) { if (differences < 16) { - cmocka_print_error("difference at offset %" PRIdS " 0x%02x 0x%02x\n", + cmocka_print_error("difference at offset %" PRIdS " 0x%02hhx 0x%02hhx\n", i, l, r); } differences ++; |