use alt signal stack when present for implementation-internal signals
[musl] / src / misc / a64l.c
index 86aeefe..6055771 100644 (file)
@@ -9,9 +9,12 @@ long a64l(const char *s)
 {
        int e;
        uint32_t x = 0;
-       for (e=0; e<36 && *s; e+=6, s++)
-               x |= (strchr(digits, *s)-digits)<<e;
-       return x;
+       for (e=0; e<36 && *s; e+=6, s++) {
+               const char *d = strchr(digits, *s);
+               if (!d) break;
+               x |= (uint32_t)(d-digits)<<e;
+       }
+       return (int32_t)x;
 }
 
 char *l64a(long x0)