Index: generic/src/lib/func.c
===================================================================
--- generic/src/lib/func.c	(revision 91c78c9c94e66242e7a59d1070420b5347b9eaee)
+++ generic/src/lib/func.c	(revision f5acb62dfec5e376412ee3624e4d5456302569dd)
@@ -136,5 +136,4 @@
 
 	while (*text) {
-		result *= base;
 		if (base != 16 && *text >= 'A' && *text <= 'F')
 			break;
@@ -142,9 +141,11 @@
 			break;
 
-		if (*text >= '0' && *text <= '9')
+		if (*text >= '0' && *text <= '9') {
+			result *= base;
 			result += *text - '0';
-		else if (*text >= 'A' && *text <= 'F')
+		} else if (*text >= 'A' && *text <= 'F') {
+			result *= base;
 			result += *text - 'A' + 10;
-		else
+		} else
 			break;
 		text++;
