filter/source/graphicfilter/ios2met/ios2met.cxx | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-)
New commits: commit 92ca905bc73a829106975dac0d1c53111667ca2a Author: Caolán McNamara <caol...@redhat.com> Date: Sat Nov 4 21:06:21 2017 +0000 ofz#4058 Integer-overflow Change-Id: I76050f392f04cff54e52eb913ceb451bc5973a72 Reviewed-on: https://gerrit.libreoffice.org/44323 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> diff --git a/filter/source/graphicfilter/ios2met/ios2met.cxx b/filter/source/graphicfilter/ios2met/ios2met.cxx index 2311539f7ae9..f861ce1c7c35 100644 --- a/filter/source/graphicfilter/ios2met/ios2met.cxx +++ b/filter/source/graphicfilter/ios2met/ios2met.cxx @@ -1110,7 +1110,6 @@ void OS2METReader::ReadFullArc(bool bGivenPos, sal_uInt16 nOrderSize) { Point aCenter; tools::Rectangle aRect; - sal_uInt32 nMul; sal_uInt16 nMulS; if (bGivenPos) { aCenter=ReadPoint(); @@ -1120,8 +1119,11 @@ void OS2METReader::ReadFullArc(bool bGivenPos, sal_uInt16 nOrderSize) sal_Int32 nP = aAttr.nArcP; sal_Int32 nQ = aAttr.nArcQ; - if (nP<0) nP=-nP; - if (nQ<0) nQ=-nQ; + if (nP < 0) + nP = o3tl::saturating_toggle_sign(nP); + if (nQ < 0) + nQ = o3tl::saturating_toggle_sign(nQ); + sal_uInt32 nMul(0); sal_uInt16 nMulS(0); if (nOrderSize>=4) pOS2MET->ReadUInt32( nMul ); else { pOS2MET->ReadUInt16( nMulS ); nMul=((sal_uInt32)nMulS)<<8; } if (nMul!=0x00010000) { @@ -1153,9 +1155,7 @@ void OS2METReader::ReadFullArc(bool bGivenPos, sal_uInt16 nOrderSize) void OS2METReader::ReadPartialArc(bool bGivenPos, sal_uInt16 nOrderSize) { Point aP0, aCenter,aPStart,aPEnd; - sal_Int32 nP,nQ,nStart, nSweep; tools::Rectangle aRect; - double fStart, fEnd; if (bGivenPos) { aP0=ReadPoint(); @@ -1164,7 +1164,8 @@ void OS2METReader::ReadPartialArc(bool bGivenPos, sal_uInt16 nOrderSize) else aP0=aAttr.aCurPos; aCenter=ReadPoint(); - nP=aAttr.nArcP; nQ=aAttr.nArcQ; + sal_Int32 nP = aAttr.nArcP; + sal_Int32 nQ = aAttr.nArcQ; if (nP < 0) nP = o3tl::saturating_toggle_sign(nP); if (nQ < 0) @@ -1177,9 +1178,10 @@ void OS2METReader::ReadPartialArc(bool bGivenPos, sal_uInt16 nOrderSize) nQ=(nQ*nMul)>>16; } + sal_Int32 nStart(0), nSweep(0); pOS2MET->ReadInt32( nStart ).ReadInt32( nSweep ); - fStart=((double)nStart)/65536.0/180.0*3.14159265359; - fEnd=fStart+((double)nSweep)/65536.0/180.0*3.14159265359; + double fStart = ((double)nStart)/65536.0/180.0*3.14159265359; + double fEnd = fStart+((double)nSweep)/65536.0/180.0*3.14159265359; aPStart=Point(aCenter.X()+(sal_Int32)( cos(fStart)*nP), aCenter.Y()+(sal_Int32)(-sin(fStart)*nQ)); aPEnd= Point(aCenter.X()+(sal_Int32)( cos(fEnd)*nP),
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits