diff options
-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) { |