[Libreoffice-commits] core.git: Branch 'libreoffice-4-3' - filter/source
Caolán McNamara
caolanm at redhat.com
Wed Aug 20 01:23:46 PDT 2014
filter/source/graphicfilter/itiff/itiff.cxx | 29 ++++++++++++++++------------
1 file changed, 17 insertions(+), 12 deletions(-)
New commits:
commit 3bcdd9fc24a9bec2997768c6aa7a78a0c1f329ee
Author: Caolán McNamara <caolanm at redhat.com>
Date: Tue Aug 19 15:14:04 2014 +0100
guard against division by 0
valgrind + bff
Change-Id: I5fa40f7a9759c98bb70ee6eb854dd9b376401f89
(cherry picked from commit 1ab0e8717bee9fee6c42015647bccfbf1683b8fc)
Reviewed-on: https://gerrit.libreoffice.org/11036
Reviewed-by: David Tardon <dtardon at redhat.com>
Tested-by: David Tardon <dtardon at redhat.com>
diff --git a/filter/source/graphicfilter/itiff/itiff.cxx b/filter/source/graphicfilter/itiff/itiff.cxx
index f708435..4122ab2 100644
--- a/filter/source/graphicfilter/itiff/itiff.cxx
+++ b/filter/source/graphicfilter/itiff/itiff.cxx
@@ -1324,29 +1324,34 @@ bool TIFFReader::ReadTIFF(SvStream & rTIFF, Graphic & rGraphic )
bByteSwap = true;
nStripsPerPlane = ( nImageLength - 1 ) / GetRowsPerStrip() + 1;
- nBytesPerRow = ( nImageWidth * nSamplesPerPixel / nPlanes * nBitsPerSample + 7 ) >> 3;
+ bStatus = nPlanes != 0;
- for ( sal_uLong j = 0; j < 4; j++ )
+ if (bStatus)
{
- try
- {
- pMap[ j ] = new sal_uInt8[ nBytesPerRow ];
- }
- catch (const std::bad_alloc &)
+ nBytesPerRow = ( nImageWidth * nSamplesPerPixel / nPlanes * nBitsPerSample + 7 ) >> 3;
+
+ for ( sal_uLong j = 0; j < 4; j++ )
{
- pMap[ j ] = NULL;
- bStatus = false;
- break;
+ try
+ {
+ pMap[ j ] = new sal_uInt8[ nBytesPerRow ];
+ }
+ catch (const std::bad_alloc &)
+ {
+ pMap[ j ] = NULL;
+ bStatus = false;
+ break;
+ }
}
}
- if (HasAlphaChannel())
+ if (bStatus && HasAlphaChannel())
{
pAlphaMask = new AlphaMask( aTargetSize );
pMaskAcc = pAlphaMask->AcquireWriteAccess();
}
- if ( bStatus && ReadMap( 10, 60 ) )
+ if (bStatus && ReadMap(10, 60))
{
nMaxPos = std::max( pTIFF->Tell(), nMaxPos );
MakePalCol();
More information about the Libreoffice-commits
mailing list