{
static const char base16[16] = "0123456789ABCDEF";
- while (inlen--)
+ while (inlen && outlen)
{
unsigned char c = *in;
*out++ = base16[c >> 4];
*out++ = base16[c & 0x0F];
++in;
+ inlen--;
+ outlen -= 2;
}
}
base2msbf_encode (char const *restrict in, idx_t inlen,
char *restrict out, idx_t outlen)
{
- while (inlen--)
+ while (inlen && outlen)
{
unsigned char c = *in;
for (int i = 0; i < 8; i++)
*out++ = c & 0x80 ? '1' : '0';
c <<= 1;
}
+ inlen--;
outlen -= 8;
++in;
}
base2lsbf_encode (char const *restrict in, idx_t inlen,
char *restrict out, idx_t outlen)
{
- while (inlen--)
+ while (inlen && outlen)
{
unsigned char c = *in;
for (int i = 0; i < 8; i++)
*out++ = c & 0x01 ? '1' : '0';
c >>= 1;
}
+ inlen--;
outlen -= 8;
++in;
}