[Libreoffice-commits] core.git: Branch 'libreoffice-5-0' - sfx2/source sw/qa

Caolán McNamara caolanm at redhat.com
Thu Aug 20 06:36:40 PDT 2015


 sfx2/source/doc/oleprops.cxx        |   17 ++++++++++-------
 sw/qa/core/data/ww8/pass/hang-4.doc |binary
 2 files changed, 10 insertions(+), 7 deletions(-)

New commits:
commit 30e4f87f2c8a5d6cd43eab53bf0d0385aca9f563
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Wed Aug 19 20:46:16 2015 +0100

    it's no use to check for stream status after a seek
    
    seek resets failures, need to check after a read
    and before a seek
    
    Change-Id: Ia249e258c51af5efc838f92c4ead6237b403c701
    (cherry picked from commit 170ff56b1b99ec451e9adbc9ae9c2a94dd47a692)
    Reviewed-on: https://gerrit.libreoffice.org/17866
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Michael Stahl <mstahl at redhat.com>

diff --git a/sfx2/source/doc/oleprops.cxx b/sfx2/source/doc/oleprops.cxx
index 055355b..6552c9e 100644
--- a/sfx2/source/doc/oleprops.cxx
+++ b/sfx2/source/doc/oleprops.cxx
@@ -1226,19 +1226,22 @@ void SfxOlePropertySet::ImplLoad( SvStream& rStrm )
 
     // read sections
     sal_Size nSectPosPos = rStrm.Tell();
-    for( sal_Int32 nSectIdx = 0; (nSectIdx < nSectCount) && (rStrm.GetErrorCode() == SVSTREAM_OK) && !rStrm.IsEof(); ++nSectIdx )
+    for (sal_Int32 nSectIdx = 0; nSectIdx < nSectCount; ++nSectIdx)
     {
         // read section guid/position pair
-        rStrm.Seek( nSectPosPos );
+        rStrm.Seek(nSectPosPos);
         SvGlobalName aSectGuid;
-        sal_uInt32 nSectPos;
         rStrm >> aSectGuid;
-        rStrm.ReadUInt32( nSectPos );
+        sal_uInt32 nSectPos(0);
+        rStrm.ReadUInt32(nSectPos);
+        if (!rStrm.good())
+            break;
         nSectPosPos = rStrm.Tell();
         // read section
-        rStrm.Seek( static_cast< sal_Size >( nSectPos ) );
-        if( rStrm.GetErrorCode() == SVSTREAM_OK )
-            LoadObject( rStrm, AddSection( aSectGuid ) );
+        rStrm.Seek(nSectPos);
+        LoadObject(rStrm, AddSection(aSectGuid));
+        if (!rStrm.good())
+            break;
     }
 }
 
diff --git a/sw/qa/core/data/ww8/pass/hang-4.doc b/sw/qa/core/data/ww8/pass/hang-4.doc
new file mode 100644
index 0000000..b7fd040
Binary files /dev/null and b/sw/qa/core/data/ww8/pass/hang-4.doc differ


More information about the Libreoffice-commits mailing list