summaryrefslogtreecommitdiff
path: root/oox
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2017-02-10 11:07:46 +0000
committerCaolán McNamara <caolanm@redhat.com>2017-02-10 11:07:46 +0000
commitfc81a580dd2c4e322a28c4f042530668f8516c60 (patch)
tree686c3c6ab2a9aa98bc25c380e01e9e5ba85a4493 /oox
parentae755d90241e9e626a58f94d8bf61b1974ea84d4 (diff)
coverity#736181 Out-of-bounds read
it should be fine, as we rely on there being at least one password char, this is the same as, commit 2d3ed7ebb592401de214eaeee68c656afbefbe05 Author: Michael Meeks <michael.meeks@collabora.com> Date: Tue Feb 25 22:48:48 2014 +0000 cid#736173 - increase default fill chars buffer size. which is another impl of this Change-Id: I5e1e07af37bea0398153ede300beed67d37d5e12
Diffstat (limited to 'oox')
-rw-r--r--oox/source/core/binarycodec.cxx9
1 files changed, 4 insertions, 5 deletions
diff --git a/oox/source/core/binarycodec.cxx b/oox/source/core/binarycodec.cxx
index 360e92c9b314..9ea36ee7df48 100644
--- a/oox/source/core/binarycodec.cxx
+++ b/oox/source/core/binarycodec.cxx
@@ -133,19 +133,18 @@ void BinaryCodec_XOR::initKey( const sal_uInt8 pnPassData[ 16 ] )
mnBaseKey = lclGetKey( pnPassData, 16 );
mnHash = lclGetHash( pnPassData, 16 );
- static const sal_uInt8 spnFillChars[] =
+ static const sal_uInt8 spnFillChars[] =
{
0xBB, 0xFF, 0xFF, 0xBA,
0xFF, 0xFF, 0xB9, 0x80,
0x00, 0xBE, 0x0F, 0x00,
- 0xBF, 0x0F, 0x00
+ 0xBF, 0x0F, 0x00, 0x00
};
(void)memcpy( mpnKey, pnPassData, 16 );
- sal_Int32 nIndex;
sal_Int32 nLen = lclGetLen( pnPassData, 16 );
const sal_uInt8* pnFillChar = spnFillChars;
- for( nIndex = nLen; nIndex < static_cast< sal_Int32 >( sizeof( mpnKey ) ); ++nIndex, ++pnFillChar )
+ for (sal_Int32 nIndex = nLen; nIndex < static_cast<sal_Int32>(sizeof(mpnKey)); ++nIndex, ++pnFillChar )
mpnKey[ nIndex ] = *pnFillChar;
// rotation of key values is application dependent
@@ -162,7 +161,7 @@ void BinaryCodec_XOR::initKey( const sal_uInt8 pnPassData[ 16 ] )
pnBaseKeyLE[ 0 ] = static_cast< sal_uInt8 >( mnBaseKey );
pnBaseKeyLE[ 1 ] = static_cast< sal_uInt8 >( mnBaseKey >> 8 );
sal_uInt8* pnKeyChar = mpnKey;
- for( nIndex = 0; nIndex < static_cast< sal_Int32 >( sizeof( mpnKey ) ); ++nIndex, ++pnKeyChar )
+ for (sal_Int32 nIndex = 0; nIndex < static_cast<sal_Int32>(sizeof(mpnKey)); ++nIndex, ++pnKeyChar )
{
*pnKeyChar ^= pnBaseKeyLE[ nIndex & 1 ];
lclRotateLeft( *pnKeyChar, nRotateSize );