ofz#17817 avoid OOM
Change-Id: I354edf5b169e797c76ec79719cdce01e63329df4 Reviewed-on: https://gerrit.libreoffice.org/79833 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
This commit is contained in:
parent
227734f528
commit
f78090e3d5
@ -711,9 +711,15 @@ namespace emfio
|
|||||||
bool bOk = nWidth && nHeight && nPlanes == 1 && nBitCount == 1 && nBytesPerScan != 0;
|
bool bOk = nWidth && nHeight && nPlanes == 1 && nBitCount == 1 && nBytesPerScan != 0;
|
||||||
if (bOk)
|
if (bOk)
|
||||||
{
|
{
|
||||||
|
// must be enough data to fulfil the request
|
||||||
bOk = nBytesPerScan <= mpInputStream->remainingSize() / nHeight;
|
bOk = nBytesPerScan <= mpInputStream->remainingSize() / nHeight;
|
||||||
}
|
}
|
||||||
if (bOk)
|
if (bOk)
|
||||||
|
{
|
||||||
|
// scanline must be large enough to provide all pixels
|
||||||
|
bOk = nBytesPerScan >= nWidth / 8;
|
||||||
|
}
|
||||||
|
if (bOk)
|
||||||
{
|
{
|
||||||
vcl::bitmap::RawBitmap aBmp( Size( nWidth, nHeight ), 24 );
|
vcl::bitmap::RawBitmap aBmp( Size( nWidth, nHeight ), 24 );
|
||||||
for (sal_uInt16 y = 0; y < nHeight && mpInputStream->good(); ++y)
|
for (sal_uInt16 y = 0; y < nHeight && mpInputStream->good(); ++y)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user