vcl/source/gdi/svmconverter.cxx | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-)
New commits: commit 7ceeae3823b0cf1496be1b0e191571bb463adc7f Author: Caolán McNamara <caol...@redhat.com> Date: Sat Mar 18 16:50:36 2017 +0000 ofz: floating point exception in values close to zero Change-Id: Idd8c7d4dd42c63f4f4a67ba61b9f3760ec04f2f1 diff --git a/vcl/source/gdi/svmconverter.cxx b/vcl/source/gdi/svmconverter.cxx index edd844df4749..a17c0cb63ddf 100644 --- a/vcl/source/gdi/svmconverter.cxx +++ b/vcl/source/gdi/svmconverter.cxx @@ -171,7 +171,21 @@ bool ImplReadMapMode(SvStream& rIStm, MapMode& rMapMode) return false; } - rMapMode = MapMode( (MapUnit) nUnit, aOrg, Fraction( nXNum, nXDenom ), Fraction( nYNum, nYDenom ) ); + Fraction aX(nXNum, nXDenom); + if (!aX.IsValid() || rtl::math::round(aX, 6) == 0.0) + { + SAL_WARN("vcl.gdi", "Parsing error: invalid mapmode fraction"); + return false; + } + + Fraction aY(nYNum, nYDenom); + if (!aY.IsValid() || rtl::math::round(aY, 6) == 0.0) + { + SAL_WARN("vcl.gdi", "Parsing error: invalid mapmode fraction"); + return false; + } + + rMapMode = MapMode((MapUnit) nUnit, aOrg, aX, aY); return true; }
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits