[libreoffice] Resolves: rhbz#1071604 Draw depends on files from libreoffice-impress, crashes without them

David Tardon dtardon at fedoraproject.org
Fri May 9 13:03:01 UTC 2014


commit 092ba3bf66aeec7b43bad9bb07b75405012eda4e
Author: David Tardon <dtardon at redhat.com>
Date:   Fri May 9 13:12:14 2014 +0200

    Resolves: rhbz#1071604 Draw depends on files from libreoffice-impress, crashes without them

 ...4-don-t-crash-if-slide-layout-configs-are.patch |   69 ++++++++++++++++++++
 libreoffice.spec                                   |    7 ++-
 2 files changed, 75 insertions(+), 1 deletions(-)
---
diff --git a/0001-rhbz-1071604-don-t-crash-if-slide-layout-configs-are.patch b/0001-rhbz-1071604-don-t-crash-if-slide-layout-configs-are.patch
new file mode 100644
index 0000000..d6c0394
--- /dev/null
+++ b/0001-rhbz-1071604-don-t-crash-if-slide-layout-configs-are.patch
@@ -0,0 +1,69 @@
+From df71f13b80c30cb98e310baf8f6aee11f8cbe81d Mon Sep 17 00:00:00 2001
+From: David Tardon <dtardon at redhat.com>
+Date: Fri, 9 May 2014 13:07:33 +0200
+Subject: [PATCH] rhbz#1071604 don't crash if slide layout configs are missing
+
+Change-Id: I5cbf4ed0683cc5736a45fb980827b1b56bd0c74c
+---
+ sd/source/core/drawdoc.cxx | 38 ++++++++++++++++++++++++++------------
+ 1 file changed, 26 insertions(+), 12 deletions(-)
+
+diff --git a/sd/source/core/drawdoc.cxx b/sd/source/core/drawdoc.cxx
+index 1de1f33..5904a64 100644
+--- a/sd/source/core/drawdoc.cxx
++++ b/sd/source/core/drawdoc.cxx
+@@ -1008,12 +1008,19 @@ void SdDrawDocument::InitLayoutVector()
+         const Reference<XDocumentBuilder> xDocBuilder(
+             DocumentBuilder::create( comphelper::getComponentContext (xServiceFactory) ));
+ 
+-        // loop over every layout entry in current file
+-        const Reference<XDocument> xDoc = xDocBuilder->parseURI( sFilename );
+-        const Reference<XNodeList> layoutlist = xDoc->getElementsByTagName("layout");
+-        const int nElements = layoutlist->getLength();
+-        for(int index=0; index < nElements; index++)
+-            maLayoutInfo.push_back( layoutlist->item(index) );
++        try
++        {
++            // loop over every layout entry in current file
++            const Reference<XDocument> xDoc = xDocBuilder->parseURI( sFilename );
++            const Reference<XNodeList> layoutlist = xDoc->getElementsByTagName("layout");
++            const int nElements = layoutlist->getLength();
++            for(int index=0; index < nElements; index++)
++                maLayoutInfo.push_back( layoutlist->item(index) );
++        }
++        catch (const uno::Exception &)
++        {
++            // skip missing config. files
++        }
+     }
+ }
+ 
+@@ -1037,12 +1044,19 @@ void SdDrawDocument::InitObjectVector()
+         const Reference<XDocumentBuilder> xDocBuilder(
+             DocumentBuilder::create( comphelper::getComponentContext (xServiceFactory) ));
+ 
+-        // loop over every object entry in current file
+-        const Reference<XDocument> xDoc = xDocBuilder->parseURI( sFilename );
+-        const Reference<XNodeList> objectlist = xDoc->getElementsByTagName("object");
+-        const int nElements = objectlist->getLength();
+-        for(int index=0; index < nElements; index++)
+-            maPresObjectInfo.push_back( objectlist->item(index) );
++        try
++        {
++            // loop over every object entry in current file
++            const Reference<XDocument> xDoc = xDocBuilder->parseURI( sFilename );
++            const Reference<XNodeList> objectlist = xDoc->getElementsByTagName("object");
++            const int nElements = objectlist->getLength();
++            for(int index=0; index < nElements; index++)
++                maPresObjectInfo.push_back( objectlist->item(index) );
++        }
++        catch (const uno::Exception &)
++        {
++            // skip missing config. files
++        }
+     }
+ }
+ /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
+-- 
+1.9.0
+
diff --git a/libreoffice.spec b/libreoffice.spec
index 4e7a3c7..b35cff5 100644
--- a/libreoffice.spec
+++ b/libreoffice.spec
@@ -37,7 +37,7 @@ Summary:        Free Software Productivity Suite
 Name:           libreoffice
 Epoch:          1
 Version:        %{libo_version}.2
-Release:        7%{?libo_prerelease}%{?dist}
+Release:        8%{?libo_prerelease}%{?dist}
 License:        (MPLv1.1 or LGPLv3+) and LGPLv3 and LGPLv2+ and BSD and (MPLv1.1 or GPLv2 or LGPLv2 or Netscape) and Public Domain and ASL 2.0 and Artistic and MPLv2.0
 Group:          Applications/Productivity
 URL:            http://www.libreoffice.org/
@@ -303,6 +303,7 @@ Patch42: 0001-center-slide-after-changing-zoom.patch
 Patch43: 0001-add-a-status-bar-icon-to-fit-slide-to-window.patch
 Patch44: 0001-Related-fdo-50697-reset-the-cache-timeout-on-GetGrap.patch
 Patch45: 0001-resolve-fdo-77509-memory-corruption-crash-in-Consoli.patch
+Patch46: 0001-rhbz-1071604-don-t-crash-if-slide-layout-configs-are.patch
 
 %define instdir %{_libdir}
 %define baseinstdir %{instdir}/libreoffice
@@ -2266,6 +2267,10 @@ update-desktop-database %{_datadir}/applications &> /dev/null || :
 %endif
 
 %changelog
+* Fri May 09 2014 David Tardon <dtardon at redhat.com> - 1:4.2.4.2-8
+- Resolves: rhbz#1071604 Draw depends on files from libreoffice-impress, crashes
+  without them
+
 * Fri May 09 2014 Eike Rathke <erack at redhat.com> - 1:4.2.4.2-7
 - Resolves: fdo#77509 memory corruption / crash in Consolidate
 


More information about the scm-commits mailing list