diff options
author | Ulrich Drepper <drepper@redhat.com> | 1998-06-17 22:55:57 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1998-06-17 22:55:57 +0000 |
commit | 779515aff97b8ccdb0617cc085fddcb2763ddc0d (patch) | |
tree | 76e676ba945372c59fcaba294ebf205cdf624fbe /stdlib/strtod.c | |
parent | 0e0316f403a4ef8d00bb4c140b9191b0358ba27c (diff) | |
download | glibc-779515aff97b8ccdb0617cc085fddcb2763ddc0d.zip glibc-779515aff97b8ccdb0617cc085fddcb2763ddc0d.tar.gz glibc-779515aff97b8ccdb0617cc085fddcb2763ddc0d.tar.bz2 |
Update.
* stdlib/strtod.c (str_to_mpn): Fix extending of n array which
only should happen for cy != 0.
Diffstat (limited to 'stdlib/strtod.c')
-rw-r--r-- | stdlib/strtod.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/stdlib/strtod.c b/stdlib/strtod.c index 55feca8..154e204 100644 --- a/stdlib/strtod.c +++ b/stdlib/strtod.c @@ -309,16 +309,21 @@ str_to_mpn (const STRING_TYPE *str, int digcnt, mp_limb_t *n, mp_size_t *nsize, if (cnt == MAX_DIG_PER_LIMB) { if (*nsize == 0) - n[0] = low; + { + n[0] = low; + *nsize = 1; + } else { mp_limb_t cy; cy = __mpn_mul_1 (n, n, *nsize, MAX_FAC_PER_LIMB); cy += __mpn_add_1 (n, n, *nsize, low); if (cy != 0) - n[*nsize] = cy; + { + n[*nsize] = cy; + ++(*nsize); + } } - ++(*nsize); cnt = 0; low = 0; } |