diff options
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | NEWS | 8 | ||||
-rw-r--r-- | stdlib/div.c | 22 | ||||
-rw-r--r-- | stdlib/ldiv.c | 22 | ||||
-rw-r--r-- | stdlib/lldiv.c | 22 |
5 files changed, 11 insertions, 70 deletions
@@ -1,3 +1,10 @@ +2013-10-30 Ondřej Bílka <neleai@seznam.cz> + + [BZ 15799] + * stdlib/div.c (div): Remove obsolete code. + * stdlib/ldiv.c (ldiv): Likewise. + * stdlib/lldiv.c (lldiv): Likewise. + 2013-10-30 Siddhesh Poyarekar <siddhesh@redhat.com> [BZ #16071] @@ -13,10 +13,10 @@ Version 2.19 14547, 14699, 14876, 14910, 15048, 15218, 15277, 15308, 15362, 15400, 15427, 15522, 15531, 15532, 15608, 15609, 15610, 15632, 15640, 15670, 15672, 15680, 15681, 15723, 15734, 15735, 15736, 15748, 15749, 15754, - 15760, 15764, 15797, 15825, 15844, 15847, 15849, 15855, 15856, 15857, - 15859, 15867, 15886, 15887, 15890, 15892, 15893, 15895, 15897, 15905, - 15909, 15919, 15921, 15923, 15939, 15948, 15963, 15966, 15988, 16032, - 16034, 16036, 16041, 16071, 16072, 16074, 16078. + 15760, 15764, 15797, 15799, 15825, 15844, 15847, 15849, 15855, 15856, + 15857, 15859, 15867, 15886, 15887, 15890, 15892, 15893, 15895, 15897, + 15905, 15909, 15919, 15921, 15923, 15939, 15948, 15963, 15966, 15988, + 16032, 16034, 16036, 16041, 16071, 16072, 16074, 16078. * CVE-2012-4412 The strcoll implementation caches indices and rules for large collation sequences to optimize multiple passes. This cache diff --git a/stdlib/div.c b/stdlib/div.c index 44a30a7..0f5569a 100644 --- a/stdlib/div.c +++ b/stdlib/div.c @@ -59,27 +59,5 @@ div (numer, denom) result.quot = numer / denom; result.rem = numer % denom; - /* The ANSI standard says that |QUOT| <= |NUMER / DENOM|, where - NUMER / DENOM is to be computed in infinite precision. In - other words, we should always truncate the quotient towards - zero, never -infinity. Machine division and remainer may - work either way when one or both of NUMER or DENOM is - negative. If only one is negative and QUOT has been - truncated towards -infinity, REM will have the same sign as - DENOM and the opposite sign of NUMER; if both are negative - and QUOT has been truncated towards -infinity, REM will be - positive (will have the opposite sign of NUMER). These are - considered `wrong'. If both are NUM and DENOM are positive, - RESULT will always be positive. This all boils down to: if - NUMER >= 0, but REM < 0, we got the wrong answer. In that - case, to get the right answer, add 1 to QUOT and subtract - DENOM from REM. */ - - if (numer >= 0 && result.rem < 0) - { - ++result.quot; - result.rem -= denom; - } - return result; } diff --git a/stdlib/ldiv.c b/stdlib/ldiv.c index 76d474f..a03057f 100644 --- a/stdlib/ldiv.c +++ b/stdlib/ldiv.c @@ -27,27 +27,5 @@ ldiv (long int numer, long int denom) result.quot = numer / denom; result.rem = numer % denom; - /* The ANSI standard says that |QUOT| <= |NUMER / DENOM|, where - NUMER / DENOM is to be computed in infinite precision. In - other words, we should always truncate the quotient towards - zero, never -infinity. Machine division and remainer may - work either way when one or both of NUMER or DENOM is - negative. If only one is negative and QUOT has been - truncated towards -infinity, REM will have the same sign as - DENOM and the opposite sign of NUMER; if both are negative - and QUOT has been truncated towards -infinity, REM will be - positive (will have the opposite sign of NUMER). These are - considered `wrong'. If both are NUM and DENOM are positive, - RESULT will always be positive. This all boils down to: if - NUMER >= 0, but REM < 0, we got the wrong answer. In that - case, to get the right answer, add 1 to QUOT and subtract - DENOM from REM. */ - - if (numer >= 0 && result.rem < 0) - { - ++result.quot; - result.rem -= denom; - } - return result; } diff --git a/stdlib/lldiv.c b/stdlib/lldiv.c index d1202bf..0da1a6a 100644 --- a/stdlib/lldiv.c +++ b/stdlib/lldiv.c @@ -30,27 +30,5 @@ lldiv (numer, denom) result.quot = numer / denom; result.rem = numer % denom; - /* The ANSI standard says that |QUOT| <= |NUMER / DENOM|, where - NUMER / DENOM is to be computed in infinite precision. In - other words, we should always truncate the quotient towards - zero, never -infinity. Machine division and remainer may - work either way when one or both of NUMER or DENOM is - negative. If only one is negative and QUOT has been - truncated towards -infinity, REM will have the same sign as - DENOM and the opposite sign of NUMER; if both are negative - and QUOT has been truncated towards -infinity, REM will be - positive (will have the opposite sign of NUMER). These are - considered `wrong'. If both are NUM and DENOM are positive, - RESULT will always be positive. This all boils down to: if - NUMER >= 0, but REM < 0, we got the wrong answer. In that - case, to get the right answer, add 1 to QUOT and subtract - DENOM from REM. */ - - if (numer >= 0 && result.rem < 0) - { - ++result.quot; - result.rem -= denom; - } - return result; } |