author | Rich Felker <dalias@aerifal.cx> | 2016年05月23日 18:19:11 -0400 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2016年05月23日 18:19:11 -0400 |
commit | 77baaa47e107f176fb2dc150dd6a9ad87f6cbe24 (patch) | |
tree | 6740f3acb5c6ba1013cd36e2cf8737e0ddc75b8c | |
parent | 81fb75a1d75c20d97292cbbe4cde6a1e65871abe (diff) | |
download | musl-77baaa47e107f176fb2dc150dd6a9ad87f6cbe24.tar.gz |
-rw-r--r-- | src/misc/a64l.c | 9 |
diff --git a/src/misc/a64l.c b/src/misc/a64l.c index 86aeefe0..60557710 100644 --- a/src/misc/a64l.c +++ b/src/misc/a64l.c @@ -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) |