2002-03-03 15:35:55

by Hans Freitag

[permalink] [raw]
Subject: sscanf()/vsscanf() isn't able to handle Hex digits

Hi,

I'm using kernel 2.4.18-pre9.

I want to parse a mac adress within a kernel module. I want to
use int sscanf(const char *buf, const char *fmt, ...) .

This function is located in /usr/src/linux/lib/vsprintf.c .

Mac addresses like 6f:6f:7f:9a:10:11 are parsed correctly,
fd:23:22:fd:df:77 fails.

The reason is located in vsprintf.c line 640:

if (!*str || !isdigit(*str))
break;

I think isxdigit(*str) might be better here.

bye
--
May the source be with you!