summaryrefslogtreecommitdiff
path: root/sw/qa/extras/htmlexport/htmlexport.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sw/qa/extras/htmlexport/htmlexport.cxx')
-rw-r--r--sw/qa/extras/htmlexport/htmlexport.cxx13
1 files changed, 13 insertions, 0 deletions
diff --git a/sw/qa/extras/htmlexport/htmlexport.cxx b/sw/qa/extras/htmlexport/htmlexport.cxx
index 105d90d39b18..5074c5e54e0d 100644
--- a/sw/qa/extras/htmlexport/htmlexport.cxx
+++ b/sw/qa/extras/htmlexport/htmlexport.cxx
@@ -138,6 +138,7 @@ OLE1Reader::OLE1Reader(SvStream& rStream)
{
// Skip ObjectHeader, see [MS-OLEDS] 2.2.4.
rStream.Seek(0);
+ CPPUNIT_ASSERT(rStream.remainingSize());
sal_uInt32 nData;
rStream.ReadUInt32(nData); // OLEVersion
rStream.ReadUInt32(nData); // FormatID
@@ -151,6 +152,11 @@ OLE1Reader::OLE1Reader(SvStream& rStream)
rStream.ReadUInt32(m_nNativeDataSize);
rStream.SeekRel(m_nNativeDataSize);
+ if (!rStream.remainingSize())
+ {
+ return;
+ }
+
rStream.ReadUInt32(nData); // OLEVersion for presentation data
CPPUNIT_ASSERT(rStream.good());
rStream.ReadUInt32(nData); // FormatID
@@ -1479,6 +1485,13 @@ CPPUNIT_TEST_FIXTURE(SwHtmlDomExportTest, testReqifImageToOle)
// - Actual : 0
// i.e. the image was exported as PNG, not as WMF (with a version).
CPPUNIT_ASSERT_EQUAL(8, xReader->getWmetafile());
+
+ // Make sure that the native data byte array is not empty.
+ SvMemoryStream aOle1;
+ CPPUNIT_ASSERT(xReader->WriteObjectData(aOle1));
+ // Without the accompanying fix in place, this test would have failed, as aOle1 was empty.
+ OLE1Reader aOle1Reader(aOle1);
+ CPPUNIT_ASSERT(aOle1Reader.m_nNativeDataSize);
}
CPPUNIT_PLUGIN_IMPLEMENT();