2 * Make a hexdump copy of C string
4 * Copyright (c) 2016 Dmitry V. Levin <ldv@altlinux.org>
7 * SPDX-License-Identifier: GPL-2.0-or-later
17 hexdump_memdup(const char *src, size_t len)
19 size_t dst_size = 3 * len + 2;
20 assert(dst_size > len);
22 char *dst = malloc(dst_size);
24 perror_msg_and_fail("malloc(%zu)", dst_size);
27 const unsigned char *usrc = (const unsigned char *) src;
29 for (i = 0; i < len; ++i) {
30 unsigned int c = usrc[i];
34 *(p++) = "0123456789abcdef"[c >> 4];
35 *(p++) = "0123456789abcdef"[c & 0xf];
43 hexdump_strdup(const char *src)
45 return hexdump_memdup(src, strlen(src));