#include <string.h>
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)
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)
return dst;
}
+
+const char *
+hexdump_strdup(const char *src)
+{
+ return hexdump_memdup(src, strlen(src));
+}
/* 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);