summaryrefslogtreecommitdiff
path: root/filter
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2012-04-20 10:52:05 +0100
committerCaolán McNamara <caolanm@redhat.com>2012-04-20 11:55:06 +0100
commit539700e10aa2c7111e469820742341a4233849b6 (patch)
tree3d0644d03cd751af6c1babf4ed7f1b60132ed60b /filter
parentc8b18c0311b2441f19f9b6b37846a83c0417edc6 (diff)
valgrind: Uninitialised value created by heap allocation
Diffstat (limited to 'filter')
-rw-r--r--filter/source/graphicfilter/itiff/ccidecom.cxx24
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;
}