[libreoffice] make handling busted extensions more robust

Caolan McNamara caolanm at fedoraproject.org
Tue Jan 18 12:15:06 UTC 2011


commit a991cf4ce731cc80672f38a1a6ec9750c8e52899
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Tue Jan 18 12:14:56 2011 +0000

    make handling busted extensions more robust

 ...-pushback-and-process-a-corrupt-extension.patch |   26 +++++++++++++++
 ...-free-ctxt-after-taking-lastError-details.patch |   34 ++++++++++++++++++++
 libreoffice.spec                                   |    5 +++
 3 files changed, 65 insertions(+), 0 deletions(-)
---
diff --git a/0001-don-t-pushback-and-process-a-corrupt-extension.patch b/0001-don-t-pushback-and-process-a-corrupt-extension.patch
new file mode 100644
index 0000000..a35f46c
--- /dev/null
+++ b/0001-don-t-pushback-and-process-a-corrupt-extension.patch
@@ -0,0 +1,26 @@
+From 0a8149b7e317b9f6d666f4fbcb649f9301da3581 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm at redhat.com>
+Date: Tue, 18 Jan 2011 12:11:52 +0000
+Subject: [PATCH] don't pushback and process a corrupt extension
+
+---
+ .../deployment/registry/package/dp_package.cxx     |    3 ++-
+ 1 files changed, 2 insertions(+), 1 deletions(-)
+
+diff --git a/desktop/source/deployment/registry/package/dp_package.cxx b/desktop/source/deployment/registry/package/dp_package.cxx
+index f31cf3f..9cbbf83 100644
+--- a/desktop/source/deployment/registry/package/dp_package.cxx
++++ b/desktop/source/deployment/registry/package/dp_package.cxx
+@@ -1618,7 +1618,8 @@ BackendImpl::PackageImpl::getPackagesFromDb(
+         Reference<deployment::XPackage> xExtension =
+             bindBundleItem(i->first, i->second, true, m_identifier, xCmdEnv);
+         OSL_ASSERT(xExtension.is());
+-        retVector.push_back(xExtension);
++        if (xExtension.is())
++            retVector.push_back(xExtension);
+     }
+     
+     return retVector;
+-- 
+1.7.3.4
+
diff --git a/0001-free-ctxt-after-taking-lastError-details.patch b/0001-free-ctxt-after-taking-lastError-details.patch
new file mode 100644
index 0000000..a6ec54e
--- /dev/null
+++ b/0001-free-ctxt-after-taking-lastError-details.patch
@@ -0,0 +1,34 @@
+From e7473329c8d79ba3988aa07172290beedcaaf325 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm at redhat.com>
+Date: Tue, 18 Jan 2011 12:10:32 +0000
+Subject: [PATCH] free ctxt *after* taking lastError details
+
+---
+ unoxml/source/dom/documentbuilder.cxx |    8 ++++----
+ 1 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/unoxml/source/dom/documentbuilder.cxx b/unoxml/source/dom/documentbuilder.cxx
+index bcce353..9e052c3 100644
+--- a/unoxml/source/dom/documentbuilder.cxx
++++ b/unoxml/source/dom/documentbuilder.cxx
+@@ -314,13 +314,13 @@ namespace DOM
+ 
+     } // extern "C"
+ 
+-    void throwEx(xmlParserCtxtPtr ctxt) {
+-        OUString msg = make_error_message(ctxt);
+-        xmlFreeParserCtxt(ctxt);
++    void throwEx(xmlParserCtxtPtr ctxt)
++    {
+         com::sun::star::xml::sax::SAXParseException saxex;
+-        saxex.Message = msg;
++        saxex.Message = make_error_message(ctxt);
+         saxex.LineNumber = static_cast<sal_Int32>(ctxt->lastError.line);
+         saxex.ColumnNumber = static_cast<sal_Int32>(ctxt->lastError.int2);
++        xmlFreeParserCtxt(ctxt);
+         throw saxex;
+     }
+ 
+-- 
+1.7.3.4
+
diff --git a/libreoffice.spec b/libreoffice.spec
index a23e3e2..5f9d7d2 100644
--- a/libreoffice.spec
+++ b/libreoffice.spec
@@ -100,6 +100,8 @@ Patch13: libreoffice-installfix.patch
 Patch14: 0001-tidy-this-up-and-don-t-bail-out-on-mislength-records.patch
 Patch15: libreoffice-bootstrap-kde.patch
 Patch16: 0001-fix-presenter-screens-description.xml-build.patch
+Patch17: 0001-don-t-pushback-and-process-a-corrupt-extension.patch
+Patch18: 0001-free-ctxt-after-taking-lastError-details.patch
 
 %{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")}
 %define instdir %{_libdir}
@@ -719,6 +721,8 @@ mv -f redhat.soc extras/source/palettes/standard.soc
 %patch14 -p1 -b .don-t-bail-out-on-mislength-records.patch
 %patch15 -p1 -b .libreoffice-bootstrap-kde.patch
 %patch16 -p1 -b .fix-presenter-screens-description.xml-build.patch
+%patch17 -p1 -b .don-t-pushback-and-process-a-corrupt-extension.patch
+%patch18 -p1 -b .free-ctxt-after-taking-lastError-details.patch
 touch scripting/source/pyprov/delzip
 touch scripting/util/provider/beanshell/delzip
 touch scripting/util/provider/javascript/delzip
@@ -2061,6 +2065,7 @@ update-desktop-database %{_datadir}/applications &> /dev/null || :
 %changelog
 * Tue Jan 18 2011 Caolán McNamara <caolanm at redhat.com> 3.3.0.3-2
 - backport fix to get presenter screen working
+- make handling busted extensions more robust
 
 * Wed Jan 12 2011 Caolán McNamara <caolanm at redhat.com> 3.3.0.3-1
 - latest version


More information about the scm-commits mailing list