summaryrefslogtreecommitdiff
path: root/emfio
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2017-10-31 09:02:24 +0000
committerCaolán McNamara <caolanm@redhat.com>2017-11-01 00:25:29 +0100
commitaab1018339fba9e6c618a17dfb2a01464555c4dc (patch)
treedf6e7d90aed15db275226fe3ddc711894c5829de /emfio
parentb3788aeede87fdbe8566d223bca80ef1a5d48845 (diff)
ofz#3939 Integer-overflow
Change-Id: Ic35cf6dd77d536ba3ab486b1c752d81037fe7cae Reviewed-on: https://gerrit.libreoffice.org/44103 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'emfio')
-rw-r--r--emfio/source/reader/emfreader.cxx11
1 files changed, 7 insertions, 4 deletions
diff --git a/emfio/source/reader/emfreader.cxx b/emfio/source/reader/emfreader.cxx
index cfcb6e3feea5..bcd8b7a83855 100644
--- a/emfio/source/reader/emfreader.cxx
+++ b/emfio/source/reader/emfreader.cxx
@@ -1413,14 +1413,17 @@ namespace emfio
ReadDIB(aBitmap, aTmp, true);
// test if it is sensible to crop
- if ( ( cxSrc > 0 ) && ( cySrc > 0 ) &&
- ( xSrc >= 0 ) && ( ySrc >= 0 ) &&
- ( xSrc + cxSrc <= aBitmap.GetSizePixel().Width() ) &&
- ( ySrc + cySrc <= aBitmap.GetSizePixel().Height() ) )
+ if ( (cxSrc > 0) && (cySrc > 0) &&
+ (xSrc >= 0) && (ySrc >= 0) &&
+ (aBitmap.GetSizePixel().Width() >= cxSrc) &&
+ (xSrc <= aBitmap.GetSizePixel().Width() - cxSrc) &&
+ (aBitmap.GetSizePixel().Height() >= cySrc) &&
+ (ySrc <= aBitmap.GetSizePixel().Height() - cySrc) )
{
tools::Rectangle aCropRect( Point( xSrc, ySrc ), Size( cxSrc, cySrc ) );
aBitmap.Crop( aCropRect );
}
+
maBmpSaveList.emplace_back(new BSaveStruct(aBitmap, aRect, dwRop));
}
}