From f55024938212249569fe69f51836bed7d648fb6e Mon Sep 17 00:00:00 2001 From: Kelvin Sherlock Date: Tue, 18 Dec 2018 19:20:11 -0500 Subject: [PATCH] tweak rawnet_hexdump --- src/rawnet/rawnetsupp.c | 9 +++++---- src/rawnet/rawnetsupp.h | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/rawnet/rawnetsupp.c b/src/rawnet/rawnetsupp.c index 4f6e33e..49d18b2 100644 --- a/src/rawnet/rawnetsupp.c +++ b/src/rawnet/rawnetsupp.c @@ -150,22 +150,23 @@ unsigned long crc32_buf(const char *buffer, unsigned int len) { return ~crc; } -void rawnet_hexdump(unsigned char *what, int count ) { +void rawnet_hexdump(const void *what, int count) { static const char hex[] = "0123456789abcdef"; char buffer1[16 * 3 + 1]; char buffer2[16 + 1]; unsigned offset; + unsigned char *cp = (unsigned char *)what; offset = 0; - while (count) { - unsigned char x = *what++; + while (count > 0) { + unsigned char x = *cp++; buffer1[offset * 3] = hex[x >> 4]; buffer1[offset * 3 + 1] = hex[x & 0x0f]; buffer1[offset * 3 + 2] = ' '; - buffer2[offset] = isprint(x) ? x : '.'; + buffer2[offset] = (x < 0x80) && isprint(x) ? x : '.'; --count; diff --git a/src/rawnet/rawnetsupp.h b/src/rawnet/rawnetsupp.h index 3e1f667..a3d4f34 100644 --- a/src/rawnet/rawnetsupp.h +++ b/src/rawnet/rawnetsupp.h @@ -52,7 +52,7 @@ extern int util_string_set(char **str, const char *new_value); extern unsigned long crc32_buf(const char *buffer, unsigned int len); -void rawnet_hexdump(unsigned char *what, int count ); +extern void rawnet_hexdump(const void *what, int count); #define log_message(level,...) do { fprintf(stderr,__VA_ARGS__); fputs("\n", stderr); } while (0) #endif