From: Andreas Schwab Date: Wed, 21 Dec 2011 22:32:10 +0000 (+0100) Subject: Fix division by denominator with more than two limbs in strtold X-Git-Tag: upstream/2.30~11805 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=707f25dfc0a63d264e9da00368cbab5bd0f6a8c9;p=external%2Fglibc.git Fix division by denominator with more than two limbs in strtold --- diff --git a/ChangeLog b/ChangeLog index 58f582c..024ee23 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2011-12-21 Andreas Schwab + + [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 * sysdeps/x86_64/fpu/bits/fenv.h (feraiseexcept): Define it only diff --git a/NEWS b/NEWS index a0869ef..50c5852 100644 --- a/NEWS +++ b/NEWS @@ -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 b3380fd..f24d4de 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; }