[Libreoffice-commits] .: Branch 'libreoffice-3-3' - 4 commits - filter/source

René Engelhard rene at kemper.freedesktop.org
Fri Nov 26 08:42:48 PST 2010


 filter/source/msfilter/svdfppt.cxx |   16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

New commits:
commit 94067e34da79c8a09ddd6d5b8fdb35f59dbe2073
Merge: 774703e... 04950a8...
Author: Rene Engelhard <rene at debian.org>
Date:   Fri Nov 26 17:41:20 2010 +0100

    Merge commit 'ooo/OOO330_m17' into libreoffice-3-3

commit 04950a878291e95b1a4892856c2217cba5858259
Merge: 0975085... f40a410...
Author: Kurt Zenker <kz at openoffice.org>
Date:   Tue Nov 23 16:56:24 2010 +0100

    CWS-TOOLING: integrate CWS os145

commit f40a4108f21c4909061ee8c4db252dbc77ac933b
Author: sj <sj at openoffice.org>
Date:   Tue Nov 23 10:41:33 2010 +0100

    os145: #b7001886# improved ppt import filter

diff --git a/filter/source/msfilter/svdfppt.cxx b/filter/source/msfilter/svdfppt.cxx
index 8eea204..46a4881 100644
--- a/filter/source/msfilter/svdfppt.cxx
+++ b/filter/source/msfilter/svdfppt.cxx
@@ -1475,9 +1475,9 @@ SdrPowerPointImport::SdrPowerPointImport( PowerPointImportParam& rParam, const S
 
         if ( bOk && ( nPersistPtrAnz < ( SAL_MAX_UINT32 / sizeof( UINT32 ) ) ) )
             pPersistPtr = new (std::nothrow) UINT32[ nPersistPtrAnz ];
-        if ( bOk && !pPersistPtr )
+        if ( !pPersistPtr )
             bOk = FALSE;
-        else
+        if ( bOk )
         {
             memset( pPersistPtr, 0x00, nPersistPtrAnz * 4 );
 
commit 78a03db7e1092f0edad88004eb809a99c823e842
Author: sj <sj at openoffice.org>
Date:   Mon Nov 22 19:00:24 2010 +0100

    os145: #b7001886# fixing small ppt import problem, improving png reader

diff --git a/filter/source/msfilter/svdfppt.cxx b/filter/source/msfilter/svdfppt.cxx
index bd22920..8eea204 100644
--- a/filter/source/msfilter/svdfppt.cxx
+++ b/filter/source/msfilter/svdfppt.cxx
@@ -1468,10 +1468,14 @@ SdrPowerPointImport::SdrPowerPointImport( PowerPointImportParam& rParam, const S
 
     if ( bOk )
     {
-        // PersistPtrs lesen (alle)
-        nPersistPtrAnz = aUserEditAtom.nMaxPersistWritten + 1;	// 1 mehr, damit ich immer direkt indizieren kann
-        pPersistPtr = new UINT32[ nPersistPtrAnz ];				// (die fangen naemlich eigentlich bei 1 an)
-        if ( !pPersistPtr )
+        nPersistPtrAnz = aUserEditAtom.nMaxPersistWritten + 1;
+        if ( ( nPersistPtrAnz >> 2 ) > nStreamLen )		// sj: at least nPersistPtrAnz is not allowed to be greater than filesize
+            bOk = FALSE;								// (it should not be greater than the PPT_PST_PersistPtrIncrementalBlock, but
+                                                        // we are reading this block later, so we do not have access yet)
+
+        if ( bOk && ( nPersistPtrAnz < ( SAL_MAX_UINT32 / sizeof( UINT32 ) ) ) )
+            pPersistPtr = new (std::nothrow) UINT32[ nPersistPtrAnz ];
+        if ( bOk && !pPersistPtr )
             bOk = FALSE;
         else
         {
@@ -5087,8 +5091,8 @@ void PPTStyleTextPropReader::ReadParaProps( SvStream& rIn, SdrPowerPointImport&
             rIn >> nCharCount
                 >> aParaPropSet.pParaSet->mnDepth;	// Einruecktiefe
 
-            aParaPropSet.pParaSet->mnDepth = 
-                std::min(sal_uInt16(9),
+            aParaPropSet.pParaSet->mnDepth =		// taking care of about using not more than 9 outliner levels
+                std::min(sal_uInt16(8),
                     aParaPropSet.pParaSet->mnDepth);
 
             nCharCount--;


More information about the Libreoffice-commits mailing list