Fixed endp bug in strtoul()
[people/xl0/gpxe.git] / src / core / misc.c
index 2765f7d..968e232 100644 (file)
@@ -164,7 +164,7 @@ unsigned long strtoul ( const char *p, char **endp, int base ) {
        }
 
        while ( 1 ) {
-               charval = *(p++) - '0';
+               charval = ( *p - '0' );
                if ( charval > ( 'A' - '0' - 10 ) )
                        charval -= ( 'A' - '0' - 10 );
                if ( charval > ( 'a' - 'A' ) )
@@ -172,6 +172,7 @@ unsigned long strtoul ( const char *p, char **endp, int base ) {
                if ( charval >= ( unsigned int ) base )
                        break;
                ret = ( ( ret * base ) + charval );
+               p++;
        }
 
        if ( endp )