Resolves: rhbz#891082 libreoffice Impress constantly crashes
This commit is contained in:
parent
193c49453e
commit
310b760ac2
35
0001-coverity-do-not-let-CDRDocument-parse-throw.patch
Normal file
35
0001-coverity-do-not-let-CDRDocument-parse-throw.patch
Normal file
@ -0,0 +1,35 @@
|
||||
From 625677ba4ec9f0b0bb930fcefab5b7fc91b9bae8 Mon Sep 17 00:00:00 2001
|
||||
From: David Tardon <dtardon@redhat.com>
|
||||
Date: Thu, 13 Dec 2012 12:49:19 +0100
|
||||
Subject: [PATCH] coverity: do not let CDRDocument::parse throw
|
||||
|
||||
---
|
||||
src/lib/CDRDocument.cpp | 12 +++++++++++-
|
||||
1 file changed, 11 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/lib/CDRDocument.cpp b/src/lib/CDRDocument.cpp
|
||||
index 4a75389..2633954 100644
|
||||
--- a/src/lib/CDRDocument.cpp
|
||||
+++ b/src/lib/CDRDocument.cpp
|
||||
@@ -129,7 +129,17 @@ bool libcdr::CDRDocument::parse(::WPXInputStream *input, libwpg::WPGPaintInterfa
|
||||
{
|
||||
input->seek(0, WPX_SEEK_SET);
|
||||
bool retVal = false;
|
||||
- unsigned version = getCDRVersion(input);
|
||||
+ unsigned version = 0;
|
||||
+ try
|
||||
+ {
|
||||
+ version = getCDRVersion(input);
|
||||
+ }
|
||||
+ catch (libcdr::EndOfStreamException const&)
|
||||
+ {
|
||||
+ // This can only happen if isSupported() has not been called before
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
if (version)
|
||||
{
|
||||
input->seek(0, WPX_SEEK_SET);
|
||||
--
|
||||
1.8.0.1
|
||||
|
35
0001-coverity-do-not-let-CMXDocument-isSupported-throw.patch
Normal file
35
0001-coverity-do-not-let-CMXDocument-isSupported-throw.patch
Normal file
@ -0,0 +1,35 @@
|
||||
From c21b18b668b9efc0dc14257e1e43a85c1ccea807 Mon Sep 17 00:00:00 2001
|
||||
From: David Tardon <dtardon@redhat.com>
|
||||
Date: Thu, 13 Dec 2012 12:13:14 +0100
|
||||
Subject: [PATCH] coverity: do not let CMXDocument::isSupported throw
|
||||
|
||||
---
|
||||
src/lib/CMXDocument.cpp | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/src/lib/CMXDocument.cpp b/src/lib/CMXDocument.cpp
|
||||
index 35d361d..9845552 100644
|
||||
--- a/src/lib/CMXDocument.cpp
|
||||
+++ b/src/lib/CMXDocument.cpp
|
||||
@@ -45,6 +45,7 @@ Analyzes the content of an input stream to see if it can be parsed
|
||||
stream is a Corel Draw Document that libcdr is able to parse
|
||||
*/
|
||||
bool libcdr::CMXDocument::isSupported(WPXInputStream *input)
|
||||
+try
|
||||
{
|
||||
input->seek(0, WPX_SEEK_SET);
|
||||
unsigned riff = readU32(input);
|
||||
@@ -62,6 +63,10 @@ bool libcdr::CMXDocument::isSupported(WPXInputStream *input)
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
+catch (...)
|
||||
+{
|
||||
+ return false;
|
||||
+}
|
||||
|
||||
/**
|
||||
Parses the input stream content. It will make callbacks to the functions provided by a
|
||||
--
|
||||
1.8.0.1
|
||||
|
@ -1,12 +1,14 @@
|
||||
Name: libcdr
|
||||
Version: 0.0.9
|
||||
Release: 1%{?dist}
|
||||
Release: 2%{?dist}
|
||||
Summary: A library providing ability to interpret and import Corel Draw drawings
|
||||
|
||||
Group: System Environment/Libraries
|
||||
License: GPLv2+ or LGPLv2+ or MPLv1.1
|
||||
URL: http://www.freedesktop.org/wiki/Software/libcdr
|
||||
Source: http://dev-www.libreoffice.org/src/%{name}-%{version}.tar.xz
|
||||
Patch0: 0001-coverity-do-not-let-CDRDocument-parse-throw.patch
|
||||
Patch1: 0001-coverity-do-not-let-CMXDocument-isSupported-throw.patch
|
||||
|
||||
BuildRequires: doxygen
|
||||
BuildRequires: lcms2-devel
|
||||
@ -48,6 +50,8 @@ Currently supported: XHTML, raw.
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
%patch0 -p1
|
||||
%patch1 -p1
|
||||
|
||||
|
||||
%build
|
||||
@ -95,6 +99,9 @@ rm -f %{buildroot}/%{_bindir}/cmx2*
|
||||
|
||||
|
||||
%changelog
|
||||
* Tue Jan 08 2013 David Tardon <dtardon@redhat.com> - 0.0.9-2
|
||||
- Resolves: rhbz#891082 libreoffice Impress constantly crashes
|
||||
|
||||
* Mon Oct 08 2012 David Tardon <dtardon@redhat.com> - 0.0.9-1
|
||||
- new upstream release
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user