On Mon, 2011-07-18 at 20:41 +0900, Tetsuo Handa wrote:
Andy Shevchenko wrote:
quoted
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()?
Perhaps, good idea. Could you submit a patch?
--
Andy Shevchenko [off-list ref]
Intel Finland Oy