2003-03-05 15:26:10

by Kevin Corry

[permalink] [raw]
Subject: [PATCH] 2.4.20: lib/vsprintf.c: Fix vsscanf of hex digits

Hi,

The current vsscanf() in 2.4 does not correctly scan hex digits that begin
with a-f. (It does work correctly for hex digits that begin with 0-9). This
patch fixes that bug, and is based on the fix that was added to 2.5.

--
Kevin Corry
[email protected]
http://evms.sourceforge.net/


--- linux-2.4.20a/lib/vsprintf.c Tue Jan 21 11:12:02 2003
+++ linux-2.4.20b/lib/vsprintf.c Tue Jan 21 11:11:49 2003
@@ -637,7 +637,11 @@
while (isspace(*str))
str++;

- if (!*str || !isdigit(*str))
+ if (!*str
+ || (base == 16 && !isxdigit(*str))
+ || (base == 10 && !isdigit(*str))
+ || (base == 8 && (!isdigit(*str) || *str > '7'))
+ || (base == 0 && !isdigit(*str)))
break;

switch(qualifier) {