|
@@ -50,21 +50,17 @@ static char hexchar(unsigned int val)
|
|
|
|
|
|
|
|
bool hex_encode(const void *buf, size_t bufsize, char *dest, size_t destsize)
|
|
bool hex_encode(const void *buf, size_t bufsize, char *dest, size_t destsize)
|
|
|
{
|
|
{
|
|
|
- size_t used = 0;
|
|
|
|
|
|
|
+ size_t i;
|
|
|
|
|
|
|
|
- if (destsize < 1)
|
|
|
|
|
|
|
+ if (destsize < hex_str_size(bufsize))
|
|
|
return false;
|
|
return false;
|
|
|
|
|
|
|
|
- while (used < bufsize) {
|
|
|
|
|
- unsigned int c = ((const unsigned char *)buf)[used];
|
|
|
|
|
- if (destsize < 3)
|
|
|
|
|
- return false;
|
|
|
|
|
|
|
+ for (i = 0; i < bufsize; i++) {
|
|
|
|
|
+ unsigned int c = ((const unsigned char *)buf)[i];
|
|
|
*(dest++) = hexchar(c >> 4);
|
|
*(dest++) = hexchar(c >> 4);
|
|
|
*(dest++) = hexchar(c & 0xF);
|
|
*(dest++) = hexchar(c & 0xF);
|
|
|
- used++;
|
|
|
|
|
- destsize -= 2;
|
|
|
|
|
}
|
|
}
|
|
|
*dest = '\0';
|
|
*dest = '\0';
|
|
|
|
|
|
|
|
- return used + 1;
|
|
|
|
|
|
|
+ return true;
|
|
|
}
|
|
}
|