[Libreoffice-commits] .: sw/qa

Caolán McNamara caolan at kemper.freedesktop.org
Wed Mar 2 03:21:19 PST 2011


 sw/qa/core/CVE/CVE-2006-3117-1.sxw |binary
 sw/qa/core/makefile.mk             |    4 ---
 sw/qa/core/swdoc-test.cxx          |   41 +++++++++++++++++++++++++++++++++++++
 3 files changed, 42 insertions(+), 3 deletions(-)

New commits:
commit f673812d6549db7c7b6fd295ddbf88fee162e8d7
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Wed Mar 2 09:01:51 2011 +0000

    add regression test for CVE-2006-3117

diff --git a/sw/qa/core/CVE/CVE-2006-3117-1.sxw b/sw/qa/core/CVE/CVE-2006-3117-1.sxw
new file mode 100644
index 0000000..49acb42
Binary files /dev/null and b/sw/qa/core/CVE/CVE-2006-3117-1.sxw differ
diff --git a/sw/qa/core/makefile.mk b/sw/qa/core/makefile.mk
index 1a63795..7fb2a9c 100644
--- a/sw/qa/core/makefile.mk
+++ b/sw/qa/core/makefile.mk
@@ -27,7 +27,7 @@
 PRJ=..$/..
 
 PRJNAME=sw
-TARGET=test-bigptrarray
+TARGET=qa_unit
 
 ENABLE_EXCEPTIONS=TRUE
 
@@ -46,8 +46,6 @@ SHL1STDLIBS=$(SALLIB) $(TOOLSLIB) $(CPPUNITLIB)
 
 SHL1IMPLIB= i$(SHL1TARGET)
 
-# SHL1DEF=    $(MISC)$/$(SHL1TARGET).def
-
 DEF1NAME    =$(SHL1TARGET)
 
 SHL1VERSIONMAP = export.map
diff --git a/sw/qa/core/swdoc-test.cxx b/sw/qa/core/swdoc-test.cxx
index d082ca4..343fcce 100644
--- a/sw/qa/core/swdoc-test.cxx
+++ b/sw/qa/core/swdoc-test.cxx
@@ -47,9 +47,12 @@
 #include <cppuhelper/basemutex.hxx>
 #include <comphelper/processfactory.hxx>
 #include <vcl/svapp.hxx>
+
 #include <sfx2/app.hxx>
+#include <sfx2/docfilt.hxx>
 #include <sfx2/docfile.hxx>
 #include <sfx2/sfxmodelfactory.hxx>
+
 #include <tools/urlobj.hxx>
 #include <unotools/tempfile.hxx>
 #include <ucbhelper/contentbroker.hxx>
@@ -82,14 +85,22 @@ public:
     virtual void setUp();
     virtual void tearDown();
 
+    bool testLoad(const rtl::OUString &rFilter, const rtl::OUString &rURL);
+
     void randomTest();
     void testPageDescName();
     void testFileNameFields();
 
+    /**
+     * Ensure CVEs remain unbroken
+     */
+    void testCVEs();
+
     CPPUNIT_TEST_SUITE(SwDocTest);
     CPPUNIT_TEST(randomTest);
     CPPUNIT_TEST(testPageDescName);
     CPPUNIT_TEST(testFileNameFields);
+    CPPUNIT_TEST(testCVEs);
     CPPUNIT_TEST_SUITE_END();
 
 private:
@@ -97,6 +108,7 @@ private:
     uno::Reference<lang::XMultiComponentFactory> m_xFactory;
     SwDoc *m_pDoc;
     SwDocShellRef m_xDocShRef;
+    ::rtl::OUString m_aPWDURL;
 };
 
 void SwDocTest::testPageDescName()
@@ -170,6 +182,32 @@ void SwDocTest::testFileNameFields()
     m_xDocShRef->DoInitNew(0);
 }
 
+bool SwDocTest::testLoad(const rtl::OUString &rFilter, const rtl::OUString &rURL)
+{
+    SfxFilter aFilter(
+        rFilter,
+        rtl::OUString(), 0, 0, rtl::OUString(), 0, rtl::OUString(),
+        rtl::OUString(), rtl::OUString() );
+
+    SwDocShellRef xDocShRef = new SwDocShell;
+    SfxMedium aSrcMed(rURL, STREAM_STD_READ, true);
+    aSrcMed.SetFilter(&aFilter);
+    return xDocShRef->DoLoad(&aSrcMed);
+}
+
+void SwDocTest::testCVEs()
+{
+//To-Do: I know this works on Linux, please check if this test works under
+//windows and enable it if so
+#ifndef WNT
+    bool bResult;
+
+    bResult = testLoad(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("StarOffice XML (Writer)")),
+        m_aPWDURL + rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/CVE/CVE-2006-3117-1.sxw")));
+    CPPUNIT_ASSERT_MESSAGE("CVE-2006-3117 regression", bResult == false);
+#endif
+}
+
 void SwDocTest::randomTest()
 {
     CPPUNIT_ASSERT_MESSAGE("SwDoc::IsRedlineOn()", !m_pDoc->IsRedlineOn());
@@ -191,6 +229,9 @@ SwDocTest::SwDocTest()
 
     SwDLL::Init();
 
+    oslProcessError err = osl_getProcessWorkingDir(&m_aPWDURL.pData);
+    CPPUNIT_ASSERT_MESSAGE("no PWD!", err == osl_Process_E_None);
+
     ErrorHandler::RegisterDisplay(&aWndFunc);
 }
 


More information about the Libreoffice-commits mailing list