filter/source/graphicfilter/ipbm/ipbm.cxx | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-)
New commits: commit 28f820c1a0d8bbe7705d6c43a7c5c4a98bef0cbd Author: Caolán McNamara <caol...@redhat.com> Date: Thu Mar 2 10:56:05 2017 +0000 ofz: don't alloc for bitmap where there isn't enough data to fill Change-Id: Ief236828f564ff81bf3a415127413b6cc72fd70d diff --git a/filter/source/graphicfilter/ipbm/ipbm.cxx b/filter/source/graphicfilter/ipbm/ipbm.cxx index 13241aa..aeb974c 100644 --- a/filter/source/graphicfilter/ipbm/ipbm.cxx +++ b/filter/source/graphicfilter/ipbm/ipbm.cxx @@ -85,7 +85,13 @@ bool PBMReader::ReadPBM(Graphic & rGraphic ) // 0->PBM, 1->PGM, 2->PPM switch ( mnMode ) { - case 0 : + case 0: + { + const size_t nRemainingSize = mrPBM.remainingSize(); + const size_t nDataRequired = mnWidth * (mnHeight / 8); + if (nRemainingSize < nDataRequired) + return false; + maBmp = Bitmap( Size( mnWidth, mnHeight ), 1 ); mpAcc = maBmp.AcquireWriteAccess(); if (!mpAcc || mpAcc->Width() != mnWidth || mpAcc->Height() != mnHeight) @@ -94,7 +100,7 @@ bool PBMReader::ReadPBM(Graphic & rGraphic ) mpAcc->SetPaletteColor( 0, BitmapColor( 0xff, 0xff, 0xff ) ); mpAcc->SetPaletteColor( 1, BitmapColor( 0x00, 0x00, 0x00 ) ); break; - + } case 1 : if ( mnMaxVal <= 1 ) maBmp = Bitmap( Size( mnWidth, mnHeight ), 1);
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits