[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