Kaydet (Commit) 8b20ac02 authored tarafından Caolán McNamara's avatar Caolán McNamara

ofz#12828 svm Timeout

Change-Id: I12f493a90177838ea4f29c2b4411846df19241a4
Reviewed-on: https://gerrit.libreoffice.org/67260
Tested-by: Jenkins
Reviewed-by: 's avatarCaolán McNamara <caolanm@redhat.com>
Tested-by: 's avatarCaolán McNamara <caolanm@redhat.com>
üst ad972aad
...@@ -29,6 +29,7 @@ ...@@ -29,6 +29,7 @@
#include <tools/stream.hxx> #include <tools/stream.hxx>
#include <tools/fract.hxx> #include <tools/fract.hxx>
#include <tools/helpers.hxx> #include <tools/helpers.hxx>
#include <unotools/configmgr.hxx>
#include <vcl/bitmapex.hxx> #include <vcl/bitmapex.hxx>
#include <vcl/bitmapaccess.hxx> #include <vcl/bitmapaccess.hxx>
#include <vcl/outdev.hxx> #include <vcl/outdev.hxx>
...@@ -544,6 +545,12 @@ bool ImplReadDIBBits(SvStream& rIStm, DIBV5Header& rHeader, BitmapWriteAccess& r ...@@ -544,6 +545,12 @@ bool ImplReadDIBBits(SvStream& rIStm, DIBV5Header& rHeader, BitmapWriteAccess& r
rIStm.ReadUInt32( nBMask ); rIStm.ReadUInt32( nBMask );
} }
const long nWidth(rHeader.nWidth);
const long nHeight(rHeader.nHeight);
long nResult = 0;
if (utl::ConfigManager::IsFuzzing() && (o3tl::checked_multiply(nWidth, nHeight, nResult) || nResult > 4000000))
return false;
if (bRLE) if (bRLE)
{ {
if(!rHeader.nSizeImage) if(!rHeader.nSizeImage)
...@@ -561,8 +568,6 @@ bool ImplReadDIBBits(SvStream& rIStm, DIBV5Header& rHeader, BitmapWriteAccess& r ...@@ -561,8 +568,6 @@ bool ImplReadDIBBits(SvStream& rIStm, DIBV5Header& rHeader, BitmapWriteAccess& r
} }
else else
{ {
const long nWidth(rHeader.nWidth);
const long nHeight(rHeader.nHeight);
if (nAlignedWidth > rIStm.remainingSize()) if (nAlignedWidth > rIStm.remainingSize())
{ {
// ofz#11188 avoid timeout // ofz#11188 avoid timeout
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment