aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Schwab <schwab@linux-m68k.org>2011-12-21 23:32:10 +0100
committerAndreas Schwab <schwab@linux-m68k.org>2011-12-21 23:57:15 +0100
commit707f25dfc0a63d264e9da00368cbab5bd0f6a8c9 (patch)
tree8bc262b79f4ca1ea1deaebc76406b0d2e3abc85f
parentd2daaa1eb6deaa17f6c9bc110cf7d927d8dcd767 (diff)
downloadglibc-707f25dfc0a63d264e9da00368cbab5bd0f6a8c9.zip
glibc-707f25dfc0a63d264e9da00368cbab5bd0f6a8c9.tar.gz
glibc-707f25dfc0a63d264e9da00368cbab5bd0f6a8c9.tar.bz2
Fix division by denominator with more than two limbs in strtold
-rw-r--r--ChangeLog6
-rw-r--r--NEWS4
-rw-r--r--stdlib/strtod_l.c2
3 files changed, 10 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 58f582c..024ee23 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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
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;
}