summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2017-03-10 11:56:00 +0000
committerAshod Nakashian <ashod.nakashian@collabora.co.uk>2017-11-28 00:13:09 -0500
commit025b5c8f3bb89015477fd43d3ec5a5fbb8a25843 (patch)
tree28310e5d8e8a306bcd9bf49e220f9ec9a7b652ee /vcl
parent6bf54bac898e4d96fbd9dd5f9f6b114eafd99994 (diff)
ofz#787 avoid bmp oom
Change-Id: Id5d1a1b8dd6d4e78bef9d09ab68d1e7daf7e1bd5 (cherry picked from commit 3d21afb8aac5da0139d85498607d40c748b6db53)
Diffstat (limited to 'vcl')
-rw-r--r--vcl/source/gdi/dibtools.cxx5
1 files changed, 3 insertions, 2 deletions
diff --git a/vcl/source/gdi/dibtools.cxx b/vcl/source/gdi/dibtools.cxx
index 4fa6cc668b09..534a50dec7ac 100644
--- a/vcl/source/gdi/dibtools.cxx
+++ b/vcl/source/gdi/dibtools.cxx
@@ -530,8 +530,9 @@ bool ImplReadDIBBits(SvStream& rIStm, DIBV5Header& rHeader, BitmapWriteAccess& r
rHeader.nSizeImage = rIStm.remainingSize();
}
- std::unique_ptr<sal_uInt8[]> pBuffer(
- new sal_uInt8[rHeader.nSizeImage]);
+ if (rHeader.nSizeImage > rIStm.remainingSize())
+ return false;
+ std::unique_ptr<sal_uInt8[]> pBuffer(new sal_uInt8[rHeader.nSizeImage]);
if (rIStm.ReadBytes(pBuffer.get(), rHeader.nSizeImage)
!= rHeader.nSizeImage)
{