|
@@ -500,10 +500,9 @@ exit:
|
|
|
|
|
|
#define HEX2STR_BUFFERS 4
|
|
|
#define HEX2STR_MAX_LEN 64
|
|
|
-#define BIN2HEX(x) ((x) < 10 ? '0' + (x) : (x) + 'A' - 10)
|
|
|
|
|
|
/* Convert binary data into hex string */
|
|
|
-static char *hex2str(void *buf, int len)
|
|
|
+static char *hex2str(void *buf, size_t len)
|
|
|
{
|
|
|
static atomic_t a = ATOMIC_INIT(0);
|
|
|
static char bufs[HEX2STR_BUFFERS][3 * HEX2STR_MAX_LEN + 1];
|
|
@@ -514,18 +513,17 @@ static char *hex2str(void *buf, int len)
|
|
|
if (len > HEX2STR_MAX_LEN)
|
|
|
len = HEX2STR_MAX_LEN;
|
|
|
|
|
|
- if (len <= 0) {
|
|
|
- ret[0] = '\0';
|
|
|
- return ret;
|
|
|
- }
|
|
|
+ if (len == 0)
|
|
|
+ goto exit;
|
|
|
|
|
|
while (len--) {
|
|
|
- *obuf++ = BIN2HEX(*ibuf >> 4);
|
|
|
- *obuf++ = BIN2HEX(*ibuf & 0xf);
|
|
|
+ obuf = pack_hex_byte(obuf, *ibuf++);
|
|
|
*obuf++ = '-';
|
|
|
- ibuf++;
|
|
|
}
|
|
|
- *(--obuf) = '\0';
|
|
|
+ obuf--;
|
|
|
+
|
|
|
+exit:
|
|
|
+ *obuf = '\0';
|
|
|
|
|
|
return ret;
|
|
|
}
|