elf.h: add ELFCOMPRESS_ZSTD
[musl] / src / internal / intscan.c
index 69350ef..a4a5ae8 100644 (file)
@@ -29,7 +29,7 @@ unsigned long long __intscan(FILE *f, unsigned base, int pok, unsigned long long
        int c, neg=0;
        unsigned x;
        unsigned long long y;
-       if (base > 36) {
+       if (base > 36 || base == 1) {
                errno = EINVAL;
                return 0;
        }
@@ -83,6 +83,7 @@ unsigned long long __intscan(FILE *f, unsigned base, int pok, unsigned long long
                for (; val[c]<base; c=shgetc(f));
                errno = ERANGE;
                y = lim;
+               if (lim&1) neg = 0;
        }
 done:
        shunget(f);