tools/source/generic/fract.cxx |    3 +++
 1 file changed, 3 insertions(+)

New commits:
commit f8cf0d2cb4e5e18f48d6b3bfbc7d0e72e7ed5190
Author:     Noel Grandin <noel.gran...@collabora.co.uk>
AuthorDate: Mon Sep 6 13:25:45 2021 +0200
Commit:     Noel Grandin <noel.gran...@collabora.co.uk>
CommitDate: Mon Sep 6 20:51:48 2021 +0200

    tdf#144319 fix formula load
    
    regression from
        commit 67d83e40e2c4f3862c50e6abeabfc24a75119fc8
        Author: Noel Grandin <noelgran...@gmail.com>
        Date:   Sat Dec 19 13:25:53 2020 +0200
        speedup rational_FromDouble
    
    Change-Id: Icb728b63f950e827f1492087114f927c2f85ddb9
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121719
    Tested-by: Jenkins
    Tested-by: Xisco Fauli <xiscofa...@libreoffice.org>
    Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org>
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>

diff --git a/tools/source/generic/fract.cxx b/tools/source/generic/fract.cxx
index 7c0e850db8d7..57dd4e79c138 100644
--- a/tools/source/generic/fract.cxx
+++ b/tools/source/generic/fract.cxx
@@ -43,6 +43,9 @@ static boost::rational<sal_Int32> toRational(sal_Int32 n, 
sal_Int32 d)
     // https://github.com/boostorg/boost/issues/335 when these are 
std::numeric_limits<sal_Int32>::min
     if (n == d)
         return 1;
+    // tdf#144319 avoid boost::bad_rational e.g. if numerator=-476741369, 
denominator=-2147483648
+    if (d < -std::numeric_limits<sal_Int32>::max())
+        return 0;
     return boost::rational<sal_Int32>(n, d);
 }
 

Reply via email to