summaryrefslogtreecommitdiffstats
path: root/emfio
diff options
context:
space:
mode:
Diffstat (limited to 'emfio')
-rw-r--r--emfio/source/reader/emfreader.cxx8
1 files changed, 8 insertions, 0 deletions
diff --git a/emfio/source/reader/emfreader.cxx b/emfio/source/reader/emfreader.cxx
index 1d62fb1e342d..e1cf68d5669e 100644
--- a/emfio/source/reader/emfreader.cxx
+++ b/emfio/source/reader/emfreader.cxx
@@ -750,6 +750,9 @@ namespace emfio
case EMR_SETWINDOWEXTEX :
{
mpInputStream->ReadUInt32( nW ).ReadUInt32( nH );
+ // clamp to valid range
+ nW = std::max<sal_Int32>(std::min<sal_Int32>(nW, RECT_MAX), RECT_MIN);
+ nH = std::max<sal_Int32>(std::min<sal_Int32>(nH, RECT_MAX), RECT_MIN);
SetWinExt( Size( nW, nH ), true);
}
break;
@@ -1926,6 +1929,11 @@ namespace emfio
SetrclFrame(rclFrame);
SetrclBounds(rclBounds);
+ // clamp to valid range
+ nPixX = std::max<sal_Int32>(std::min<sal_Int32>(nPixX, RECT_MAX), RECT_MIN);
+ nPixY = std::max<sal_Int32>(std::min<sal_Int32>(nPixY, RECT_MAX), RECT_MIN);
+ nMillX = std::max<sal_Int32>(std::min<sal_Int32>(nMillX, RECT_MAX), RECT_MIN);
+ nMillY = std::max<sal_Int32>(std::min<sal_Int32>(nMillY, RECT_MAX), RECT_MIN);
SetRefPix(Size( nPixX, nPixY ) );
SetRefMill(Size( nMillX, nMillY ) );