Re: [PATCH] net: can: remove custom hex_to_bin()

From: Tetsuo Handa
Date: Mon Jul 18 2011 - 07:41:29 EST


Andy Shevchenko wrote:
> for (i = 0, dlc_pos++; i < cf.can_dlc; i++) {
> -
> - tmp = asc2nibble(sl->rbuff[dlc_pos++]);
> - if (tmp > 0x0F)
> + tmp = hex_to_bin(sl->rbuff[dlc_pos++]);
> + if (tmp < 0)
> return;
> cf.data[i] = (tmp << 4);
> - tmp = asc2nibble(sl->rbuff[dlc_pos++]);
> - if (tmp > 0x0F)
> + tmp = hex_to_bin(sl->rbuff[dlc_pos++]);
> + if (tmp < 0)
> return;
> cf.data[i] |= tmp;
> }

What about changing

void hex2bin(u8 *dst, const char *src, size_t count)

to

bool hex2bin(u8 *dst, const char *src, size_t count)

in order to do error checks like

bool hex2bin_with_validation(u8 *dst, const char *src, size_t count)
{
while (count--) {
int c = hex_to_bin(*src++);
int d;
if (c < 0)
return false;
d = hex_to_bin(*src++)
if (d < 0)
return false;
*dst++ = (c << 4) | d;
}
return true;
}

and use hex2bin() rather than hex_to_bin()?
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/