diff options
Diffstat (limited to 'patches/dev300/sd-ppt-fix-document-summary-reading.diff')
-rw-r--r-- | patches/dev300/sd-ppt-fix-document-summary-reading.diff | 38 |
1 files changed, 0 insertions, 38 deletions
diff --git a/patches/dev300/sd-ppt-fix-document-summary-reading.diff b/patches/dev300/sd-ppt-fix-document-summary-reading.diff deleted file mode 100644 index daebffa96..000000000 --- a/patches/dev300/sd-ppt-fix-document-summary-reading.diff +++ /dev/null @@ -1,38 +0,0 @@ ---- - sd/source/filter/ppt/propread.cxx | 11 ++++++++--- - 1 files changed, 8 insertions(+), 3 deletions(-) - -diff --git sd/source/filter/ppt/propread.cxx sd/source/filter/ppt/propread.cxx -index ae64ac4..7b9f508 100644 ---- sd/source/filter/ppt/propread.cxx -+++ sd/source/filter/ppt/propread.cxx -@@ -468,11 +468,13 @@ void Section::Read( SvStorageStream *pStrm ) - nPropSize += ( nTemp + 4 ); - break; - -- case VT_LPWSTR : -+ case VT_LPWSTR : { - *pStrm >> nTemp; -- nPropSize += ( nTemp << 1 ) + 4; -+ // looks like these are aligned to 4 bytes -+ sal_uInt32 nLength = nPropOfs + nSecOfs + nPropSize + ( nTemp << 1 ) + 4; -+ nPropSize += ( nTemp << 1 ) + 4 + (nLength % 4); - break; -- -+ } - case VT_BLOB_OBJECT : - case VT_BLOB : - case VT_CF : -@@ -501,6 +503,9 @@ void Section::Read( SvStorageStream *pStrm ) - break; - } - pStrm->Seek( nPropOfs + nSecOfs ); -+ // make sure we don't overflow the section size -+ if( nPropSize > nSecSize - nSecOfs ) -+ nPropSize = nSecSize - nSecOfs; - sal_uInt8* pBuf = new sal_uInt8[ nPropSize ]; - pStrm->Read( pBuf, nPropSize ); - AddProperty( nPropId, pBuf, nPropSize ); --- -1.7.0.1 - |