[Libreoffice-commits] core.git: Branch 'aoo/trunk' - sot/source

Oliver-Rainer Wittmann orw at apache.org
Thu Aug 22 07:07:50 PDT 2013


 sot/source/sdstor/stgelem.cxx |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

New commits:
commit 73e2c4f8c54c7803b2b3e5043bd49d477343a25b
Author: Oliver-Rainer Wittmann <orw at apache.org>
Date:   Thu Aug 22 12:38:02 2013 +0000

    122935: storage handling: adjust header field checking
    
    to import Microsoft Office documents in binary format created by Pages

diff --git a/sot/source/sdstor/stgelem.cxx b/sot/source/sdstor/stgelem.cxx
index 872d6e9..2e4bf39 100644
--- a/sot/source/sdstor/stgelem.cxx
+++ b/sot/source/sdstor/stgelem.cxx
@@ -198,7 +198,7 @@ sal_Bool StgHeader::Check()
             && nTOCstrm >= 0
             && nThreshold > 0
             && ( nDataFAT == STG_EOF || ( nDataFAT >= 0 && nDataFATSize > 0 ) )
-            && ( nMasterChain == STG_EOF || ( nMasterChain >=0 && nMaster > 0 ) )
+            && ( nMasterChain == STG_FREE || nMasterChain == STG_EOF || ( nMasterChain >=0 && nMaster > 0 ) )
             && nMaster >= 0;
 }
 
@@ -438,7 +438,7 @@ sal_Bool StgEntry::Load( const void* pFrom, sal_uInt32 nBufSize )
         n = ( n >> 1 ) - 1;
     if ( n > 31 ||
          (nSize < 0 && cType != STG_STORAGE) ||
-         ( nPage1 < 0 && nPage1 != STG_EOF ) )
+         ( nPage1 < 0 && nPage1 != STG_FREE && nPage1 != STG_EOF ) )
     {
         // the size makes no sence for the substorage
         // TODO/LATER: actually the size should be an unsigned value, but in this case it would mean a stream of more than 2Gb


More information about the Libreoffice-commits mailing list