From: Dmitry V. Levin Date: Sat, 2 Apr 2016 18:24:36 +0000 (+0000) Subject: tests: add hexdump_memdup function to libtests X-Git-Tag: v4.12~455 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0de582907a19559de8b2f88464880ffcdfd88f8f;p=strace tests: add hexdump_memdup function to libtests * tests/hexdump_strdup.c (hexdump_memdup): New function. (hexdump_strdup): Use it. * tests/tests.h (hexdump_memdup): New prototype. --- diff --git a/tests/hexdump_strdup.c b/tests/hexdump_strdup.c index d7e083a4..4d6b53f4 100644 --- a/tests/hexdump_strdup.c +++ b/tests/hexdump_strdup.c @@ -34,11 +34,10 @@ #include const char * -hexdump_strdup(const char *src) +hexdump_memdup(const char *src, size_t len) { - size_t src_len = strlen(src); - size_t dst_size = 3 * src_len + 2; - assert(dst_size > src_len); + size_t dst_size = 3 * len + 2; + assert(dst_size > len); char *dst = malloc(dst_size); if (!dst) @@ -46,8 +45,8 @@ hexdump_strdup(const char *src) char *p = dst; const unsigned char *usrc = (const unsigned char *) src; - unsigned int i; - for (i = 0; usrc[i]; ++i) { + size_t i; + for (i = 0; i < len; ++i) { unsigned int c = usrc[i]; *(p++) = ' '; if (i == 8) @@ -59,3 +58,9 @@ hexdump_strdup(const char *src) return dst; } + +const char * +hexdump_strdup(const char *src) +{ + return hexdump_memdup(src, strlen(src)); +} diff --git a/tests/tests.h b/tests/tests.h index d8632ba3..115379ee 100644 --- a/tests/tests.h +++ b/tests/tests.h @@ -69,6 +69,9 @@ void tprintf(const char *, ...) /* Make a hexdump copy of C string */ const char *hexdump_strdup(const char *); +/* Make a hexdump copy of memory */ +const char *hexdump_memdup(const char *, size_t); + /* Make a hexquoted copy of a string */ const char *hexquote_strndup(const char *, size_t);