workaround gcc got-register-reload performance problems in malloc
[musl] / src / internal / intscan.c
index a00f2cc..178cdf0 100644 (file)
@@ -32,7 +32,7 @@ unsigned long long __intscan(FILE *f, unsigned base, int pok, unsigned long long
                errno = EINVAL;
                return 0;
        }
-       c = shgetc(f);
+       while (isspace((c=shgetc(f))));
        if (c=='+' || c=='-') {
                neg = -(c=='-');
                c = shgetc(f);
@@ -54,6 +54,7 @@ unsigned long long __intscan(FILE *f, unsigned base, int pok, unsigned long long
        } else {
                if (base == 0) base = 10;
                if (val[c] >= base) {
+                       shunget(f);
                        shlim(f, 0);
                        errno = EINVAL;
                        return 0;