diff options
author | Andreas Schwab <schwab@linux-m68k.org> | 2011-12-21 23:32:10 +0100 |
---|---|---|
committer | Andreas Schwab <schwab@linux-m68k.org> | 2011-12-21 23:57:15 +0100 |
commit | 707f25dfc0a63d264e9da00368cbab5bd0f6a8c9 (patch) | |
tree | 8bc262b79f4ca1ea1deaebc76406b0d2e3abc85f | |
parent | d2daaa1eb6deaa17f6c9bc110cf7d927d8dcd767 (diff) | |
download | glibc-707f25dfc0a63d264e9da00368cbab5bd0f6a8c9.tar glibc-707f25dfc0a63d264e9da00368cbab5bd0f6a8c9.tar.gz glibc-707f25dfc0a63d264e9da00368cbab5bd0f6a8c9.tar.bz2 glibc-707f25dfc0a63d264e9da00368cbab5bd0f6a8c9.zip |
Fix division by denominator with more than two limbs in strtold
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | NEWS | 4 | ||||
-rw-r--r-- | stdlib/strtod_l.c | 2 |
3 files changed, 10 insertions, 2 deletions
@@ -1,3 +1,9 @@ +2011-12-21 Andreas Schwab <schwab@linux-m68k.org> + + [BZ #13524] + * stdlib/strtod_l.c (____STRTOF_INTERNAL): Clear lowest limb of + numerator after shifting it by one limb. + 2011-12-19 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> * sysdeps/x86_64/fpu/bits/fenv.h (feraiseexcept): Define it only @@ -1,4 +1,4 @@ -GNU C Library NEWS -- history of user-visible changes. 2011-12-17 +GNU C Library NEWS -- history of user-visible changes. 2011-12-21 Copyright (C) 1992-2009, 2010, 2011 Free Software Foundation, Inc. See the end for copying conditions. @@ -13,7 +13,7 @@ Version 2.15 12885, 12892, 12907, 12922, 12935, 13007, 13021, 13067, 13068, 13090, 13092, 13114, 13118, 13123, 13134, 13138, 13147, 13150, 13179, 13192, 13268, 13276, 13291, 13335, 13337, 13344, 13358, 13367, 13446, 13472, - 13484, 13506 + 13484, 13506, 13524 * New program pldd to list loaded object of a process Implemented by Ulrich Drepper. diff --git a/stdlib/strtod_l.c b/stdlib/strtod_l.c index b3380fdba3..f24d4de73b 100644 --- a/stdlib/strtod_l.c +++ b/stdlib/strtod_l.c @@ -1513,6 +1513,7 @@ ____STRTOF_INTERNAL (nptr, endptr, group, loc) assert (numsize == densize); for (i = numsize; i > 0; --i) num[i] = num[i - 1]; + num[0] = 0; } den[densize] = 0; @@ -1557,6 +1558,7 @@ ____STRTOF_INTERNAL (nptr, endptr, group, loc) n0 = num[densize] = num[densize - 1]; for (i = densize - 1; i > 0; --i) num[i] = num[i - 1]; + num[0] = 0; got_limb; } |