diff options
author | Caolán McNamara <caolanm@redhat.com> | 2015-08-28 14:33:05 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2015-08-28 20:06:37 +0100 |
commit | 2aadad1e89e96cb80c15fe1069cb6365f0cade1d (patch) | |
tree | 29e836fbc459f235142cc314c7cce75f00b1f1b0 /sd/source | |
parent | 1847753ab135f522df6a293a8539155437f0129f (diff) |
guard against 0 item size
Change-Id: I9c4c2f0fe2d892615b3c70e08da0cab6da13338a
Diffstat (limited to 'sd/source')
-rw-r--r-- | sd/source/filter/ppt/propread.cxx | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/sd/source/filter/ppt/propread.cxx b/sd/source/filter/ppt/propread.cxx index 286c61f83231..18f345039dd0 100644 --- a/sd/source/filter/ppt/propread.cxx +++ b/sd/source/filter/ppt/propread.cxx @@ -93,7 +93,7 @@ bool PropItem::Read( OUString& rString, sal_uInt32 nStringType, bool bAlign ) { case VT_LPSTR : { - if ( nItemSize ) + if (nItemSize) { auto nMaxSizePossible = remainingSize(); if (nItemSize > nMaxSizePossible) @@ -101,6 +101,10 @@ bool PropItem::Read( OUString& rString, sal_uInt32 nStringType, bool bAlign ) SAL_WARN("sd.filter", "String of Len " << nItemSize << " claimed, only " << nMaxSizePossible << " possible"); nItemSize = nMaxSizePossible; } + } + + if (nItemSize) + { try { sal_Char* pString = new sal_Char[ nItemSize ]; @@ -144,7 +148,7 @@ bool PropItem::Read( OUString& rString, sal_uInt32 nStringType, bool bAlign ) case VT_LPWSTR : { - if ( nItemSize ) + if (nItemSize) { auto nMaxSizePossible = remainingSize() / sizeof(sal_Unicode); if (nItemSize > nMaxSizePossible) @@ -152,7 +156,10 @@ bool PropItem::Read( OUString& rString, sal_uInt32 nStringType, bool bAlign ) SAL_WARN("sd.filter", "String of Len " << nItemSize << " claimed, only " << nMaxSizePossible << " possible"); nItemSize = nMaxSizePossible; } + } + if (nItemSize) + { try { sal_Unicode* pString = new sal_Unicode[ nItemSize ]; |