summaryrefslogtreecommitdiff
path: root/src/stdlib
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2012-04-19 12:47:34 -0400
committerRich Felker <dalias@aerifal.cx>2012-04-19 12:47:34 -0400
commitcb81b6947c0277a6a27ddc699d716e9cf2b524aa (patch)
tree50c78b49bb6d81a726b1d58026757e7d1185a9ac /src/stdlib
parent769d3d349824fb45218972a1cf0e912cfee62d51 (diff)
downloadmusl-cb81b6947c0277a6a27ddc699d716e9cf2b524aa.tar.gz
musl-cb81b6947c0277a6a27ddc699d716e9cf2b524aa.tar.bz2
musl-cb81b6947c0277a6a27ddc699d716e9cf2b524aa.tar.xz
musl-cb81b6947c0277a6a27ddc699d716e9cf2b524aa.zip
fix really bad breakage in strtol, etc.: failure to accept leading spaces
Diffstat (limited to 'src/stdlib')
-rw-r--r--src/stdlib/strtod.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/src/stdlib/strtod.c b/src/stdlib/strtod.c
index ecfabdf1..1886efa5 100644
--- a/src/stdlib/strtod.c
+++ b/src/stdlib/strtod.c
@@ -5,16 +5,14 @@
static long double strtox(const char *s, char **p, int prec)
{
- char *t = (char *)s;
- while (isspace(*t)) t++;
FILE f = {
- .buf = (void *)t, .rpos = (void *)t,
+ .buf = (void *)s, .rpos = (void *)s,
.rend = (void *)-1, .lock = -1
};
shlim(&f, 0);
- long double y = __floatscan(&f, -1, prec, 1);
+ long double y = __floatscan(&f, prec, 1);
off_t cnt = shcnt(&f);
- if (p) *p = cnt ? t + cnt : (char *)s;
+ if (p) *p = cnt ? (char *)s + cnt : (char *)s;
return y;
}