From ccdd1e3fd92591755e2b94bf63416c7b30cd217a Mon Sep 17 00:00:00 2001 From: Emil Velikov Date: Wed, 23 Dec 2020 22:43:57 +0000 Subject: Move hex_representation() to src/common We'll reuse the function in pacman with a later commit. Signed-off-by: Emil Velikov Signed-off-by: Allan McRae --- lib/libalpm/util.c | 24 ------------------------ src/common/util-common.c | 26 ++++++++++++++++++++++++++ src/common/util-common.h | 1 + 3 files changed, 27 insertions(+), 24 deletions(-) diff --git a/lib/libalpm/util.c b/lib/libalpm/util.c index b70a8192..9ae08745 100644 --- a/lib/libalpm/util.c +++ b/lib/libalpm/util.c @@ -1014,30 +1014,6 @@ static int sha256_file(const char *path, unsigned char output[32]) } #endif /* HAVE_LIBSSL || HAVE_LIBNETTLE */ -/** Create a string representing bytes in hexadecimal. - * @param bytes the bytes to represent in hexadecimal - * @param size number of bytes to consider - * @return a NULL terminated string with the hexadecimal representation of - * bytes or NULL on error. This string must be freed. - */ -static char *hex_representation(const unsigned char *bytes, size_t size) -{ - static const char *hex_digits = "0123456789abcdef"; - char *str; - size_t i; - - MALLOC(str, 2 * size + 1, return NULL); - - for(i = 0; i < size; i++) { - str[2 * i] = hex_digits[bytes[i] >> 4]; - str[2 * i + 1] = hex_digits[bytes[i] & 0x0f]; - } - - str[2 * size] = '\0'; - - return str; -} - char SYMEXPORT *alpm_compute_md5sum(const char *filename) { unsigned char output[16]; diff --git a/src/common/util-common.c b/src/common/util-common.c index 7d43ac0d..fc892c11 100644 --- a/src/common/util-common.c +++ b/src/common/util-common.c @@ -25,6 +25,32 @@ #include "util-common.h" +/** Create a string representing bytes in hexadecimal. + * @param bytes the bytes to represent in hexadecimal + * @param size number of bytes to consider + * @return a NULL terminated string with the hexadecimal representation of + * bytes or NULL on error. This string must be freed. + */ +char *hex_representation(const unsigned char *bytes, size_t size) +{ + static const char *hex_digits = "0123456789abcdef"; + char *str = malloc(2 * size + 1); + size_t i; + + if(!str) { + return NULL; + } + + for(i = 0; i < size; i++) { + str[2 * i] = hex_digits[bytes[i] >> 4]; + str[2 * i + 1] = hex_digits[bytes[i] & 0x0f]; + } + + str[2 * size] = '\0'; + + return str; +} + /** Parse the basename of a program from a path. * @param path path to parse basename from * diff --git a/src/common/util-common.h b/src/common/util-common.h index 483d5da4..d9b6b4b7 100644 --- a/src/common/util-common.h +++ b/src/common/util-common.h @@ -23,6 +23,7 @@ #include #include /* struct stat */ +char *hex_representation(const unsigned char *bytes, size_t size); const char *mbasename(const char *path); char *mdirname(const char *path); -- cgit v1.2.3-54-g00ecf