From 6aaddd1cf8ffd9e21582956b4f7fe641cda6ccca Mon Sep 17 00:00:00 2001 From: David Tardon Date: Mon, 28 Jan 2013 15:48:46 +0100 Subject: [PATCH] new version --- ...correctly-negative-angles-in-ellipse.patch | 33 +++++++++++++++++ ...y-do-not-let-CDRDocument-parse-throw.patch | 35 ------------------- ...ot-let-CMXDocument-isSupported-throw.patch | 35 ------------------- libcdr.spec | 14 +++++--- 4 files changed, 42 insertions(+), 75 deletions(-) create mode 100644 0001-Handle-correctly-negative-angles-in-ellipse.patch delete mode 100644 0001-coverity-do-not-let-CDRDocument-parse-throw.patch delete mode 100644 0001-coverity-do-not-let-CMXDocument-isSupported-throw.patch diff --git a/0001-Handle-correctly-negative-angles-in-ellipse.patch b/0001-Handle-correctly-negative-angles-in-ellipse.patch new file mode 100644 index 0000000..a2a418c --- /dev/null +++ b/0001-Handle-correctly-negative-angles-in-ellipse.patch @@ -0,0 +1,33 @@ +From fabf05464f137875a5ee74fcc21938161ecca077 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Fridrich=20=C5=A0trba?= +Date: Fri, 25 Jan 2013 12:25:36 +0100 +Subject: [PATCH] Handle correctly negative angles in ellipse + +--- + src/lib/CDRParser.cpp | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +diff --git a/src/lib/CDRParser.cpp b/src/lib/CDRParser.cpp +index c30d987..a76a0a6 100644 +--- a/src/lib/CDRParser.cpp ++++ b/src/lib/CDRParser.cpp +@@ -1186,6 +1186,16 @@ void libcdr::CDRParser::readEllipse(WPXInputStream *input) + double rx = fabs(cx); + double ry = fabs(cy); + ++ while (angle1 < 0.0) ++ angle1 += 2*M_PI; ++ while (angle1 > 2*M_PI) ++ angle1 -= 2*M_PI; ++ ++ while (angle2 < 0.0) ++ angle2 += 2*M_PI; ++ while (angle2 > 2*M_PI) ++ angle2 -= 2*M_PI; ++ + if (angle1 != angle2) + { + if (angle2 < angle1) +-- +1.7.11.7 + diff --git a/0001-coverity-do-not-let-CDRDocument-parse-throw.patch b/0001-coverity-do-not-let-CDRDocument-parse-throw.patch deleted file mode 100644 index 296a4c0..0000000 --- a/0001-coverity-do-not-let-CDRDocument-parse-throw.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 625677ba4ec9f0b0bb930fcefab5b7fc91b9bae8 Mon Sep 17 00:00:00 2001 -From: David Tardon -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 - diff --git a/0001-coverity-do-not-let-CMXDocument-isSupported-throw.patch b/0001-coverity-do-not-let-CMXDocument-isSupported-throw.patch deleted file mode 100644 index 2efa669..0000000 --- a/0001-coverity-do-not-let-CMXDocument-isSupported-throw.patch +++ /dev/null @@ -1,35 +0,0 @@ -From c21b18b668b9efc0dc14257e1e43a85c1ccea807 Mon Sep 17 00:00:00 2001 -From: David Tardon -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 - diff --git a/libcdr.spec b/libcdr.spec index 9ddd091..f3c3281 100644 --- a/libcdr.spec +++ b/libcdr.spec @@ -1,17 +1,17 @@ Name: libcdr -Version: 0.0.9 -Release: 2%{?dist} +Version: 0.0.10 +Release: 1%{?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 +Patch0: 0001-Handle-correctly-negative-angles-in-ellipse.patch BuildRequires: doxygen BuildRequires: lcms2-devel +BuildRequires: libicu-devel BuildRequires: libwpd-devel BuildRequires: libwpg-devel BuildRequires: zlib-devel @@ -51,10 +51,11 @@ Currently supported: XHTML, raw. %prep %setup -q %patch0 -p1 -%patch1 -p1 %build +# rhbz#856594 +export ICU_CFLAGS=`icu-config --cppflags` %configure --disable-static --disable-werror sed -i \ -e 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' \ @@ -99,6 +100,9 @@ rm -f %{buildroot}/%{_bindir}/cmx2* %changelog +* Mon Jan 28 2013 David Tardon - 0.0.10-1 +- new release + * Tue Jan 08 2013 David Tardon - 0.0.9-2 - Resolves: rhbz#891082 libreoffice Impress constantly crashes