mirror of
https://github.com/fosslinux/live-bootstrap.git
synced 2026-03-02 01:18:08 +01:00
28 lines
1,007 B
Diff
28 lines
1,007 B
Diff
SPDX-FileCopyrightText: 2025 fosslinux <fosslinux@aussies.space>
|
|
|
|
SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
The code to generate the table in strtofr.c was written in 2004 and not
|
|
updated since. Not sure if this case was ever actually handled.
|
|
Without this check, we end up dividing by zero, which creates problematic
|
|
results.
|
|
To fix this, check if the divisor is zero, and if it is, early exit (and
|
|
fill the rest of the continued fraction with zeros).
|
|
|
|
--- mpfr-4.1.0/src/strtofr.c 2025-10-03 22:15:37.527948986 +1000
|
|
+++ mpfr-4.1.0/src/strtofr.c 2025-10-03 22:18:18.480958600 +1000
|
|
@@ -136,6 +136,14 @@
|
|
mpfr_floor (y, x);
|
|
tab[i] = mpfr_get_ui (y, MPFR_RNDN);
|
|
mpfr_sub (x, x, y, MPFR_RNDN);
|
|
+ if (mpfr_zero_p(x))
|
|
+ {
|
|
+ for (i++; i < N; i++)
|
|
+ {
|
|
+ tab[i] = 0;
|
|
+ }
|
|
+ break;
|
|
+ }
|
|
mpfr_ui_div (x, 1, x, MPFR_RNDN);
|
|
}
|
|
for (i = N-1 ; i >= 0 ; i--)
|