diff options
author | Caolán McNamara <caolanm@redhat.com> | 2012-04-20 10:52:05 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2012-04-20 11:55:06 +0100 |
commit | 539700e10aa2c7111e469820742341a4233849b6 (patch) | |
tree | 3d0644d03cd751af6c1babf4ed7f1b60132ed60b /filter | |
parent | c8b18c0311b2441f19f9b6b37846a83c0417edc6 (diff) |
valgrind: Uninitialised value created by heap allocation
Diffstat (limited to 'filter')
-rw-r--r-- | filter/source/graphicfilter/itiff/ccidecom.cxx | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/filter/source/graphicfilter/itiff/ccidecom.cxx b/filter/source/graphicfilter/itiff/ccidecom.cxx index e656f2f5f4ba..c55ebe4fe821 100644 --- a/filter/source/graphicfilter/itiff/ccidecom.cxx +++ b/filter/source/graphicfilter/itiff/ccidecom.cxx @@ -730,16 +730,16 @@ void CCIDecompressor::MakeLookUp(const CCIHuffmanTableEntry * pHufTab, sal_uInt16 nHuffmanTableSize, sal_uInt16 nMaxCodeBits) { - sal_uInt16 i,j,nMinCode,nMaxCode,nLookUpSize,nMask; + sal_uInt16 nLookUpSize = 1 << nMaxCodeBits; + memset(pLookUp, 0, nLookUpSize * sizeof(CCILookUpTableEntry)); - if (bTableBad==sal_True) return; - - nLookUpSize=1<<nMaxCodeBits; + if (bTableBad==sal_True) + return; - nMask=0xffff>>(16-nMaxCodeBits); + sal_uInt16 nMask = 0xffff >> (16-nMaxCodeBits); - for (i=0; i<nLookUpSize; i++) pLookUp[i].nCodeBits=0; - for (i=0; i<nHuffmanTableSize; i++) { + for (sal_uInt16 i = 0; i < nHuffmanTableSize; ++i) + { if ( pHufTab[i].nValue!=pHufTabSave[i].nValue || pHufTab[i].nCode!=pHufTabSave[i].nCode || pHufTab[i].nCodeBits!=pHufTabSave[i].nCodeBits || @@ -749,10 +749,12 @@ void CCIDecompressor::MakeLookUp(const CCIHuffmanTableEntry * pHufTab, bTableBad=sal_True; return; } - nMinCode = nMask & (pHufTab[i].nCode << (nMaxCodeBits-pHufTab[i].nCodeBits)); - nMaxCode = nMinCode | (nMask >> pHufTab[i].nCodeBits); - for (j=nMinCode; j<=nMaxCode; j++) { - if (pLookUp[j].nCodeBits!=0) { + sal_uInt16 nMinCode = nMask & (pHufTab[i].nCode << (nMaxCodeBits-pHufTab[i].nCodeBits)); + sal_uInt16 nMaxCode = nMinCode | (nMask >> pHufTab[i].nCodeBits); + for (sal_uInt16 j=nMinCode; j<=nMaxCode; ++j) + { + if (pLookUp[j].nCodeBits!=0) + { bTableBad=sal_True; return; } |