diff options
author | Caolán McNamara <caolanm@redhat.com> | 2017-03-10 11:56:00 +0000 |
---|---|---|
committer | Ashod Nakashian <ashod.nakashian@collabora.co.uk> | 2017-11-28 00:13:09 -0500 |
commit | 025b5c8f3bb89015477fd43d3ec5a5fbb8a25843 (patch) | |
tree | 28310e5d8e8a306bcd9bf49e220f9ec9a7b652ee /vcl | |
parent | 6bf54bac898e4d96fbd9dd5f9f6b114eafd99994 (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.cxx | 5 |
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) { |