diff -u abiword-2.8.2/debian/changelog abiword-2.8.2/debian/changelog --- abiword-2.8.2/debian/changelog +++ abiword-2.8.2/debian/changelog @@ -1,3 +1,12 @@ +abiword (2.8.2-2ubuntu1.1) lucid-proposed; urgency=low + + * debian/patches/debian/abiword-libxml2-xmlCleanupParser-is-harmful.patch + - Fix by Michal Schmidt (Fedora Bug: #554899) + "remove harmful calls to xml{Init,Cleanup}Parser" + - Fixes Abiword locking up when opening help (LP: #519541) + + -- Arand Nash Mon, 17 May 2010 16:11:16 +0100 + abiword (2.8.2-2ubuntu1) lucid; urgency=low * FFe granted, upload to ubuntu. lp: #543612 diff -u abiword-2.8.2/debian/patches/series abiword-2.8.2/debian/patches/series --- abiword-2.8.2/debian/patches/series +++ abiword-2.8.2/debian/patches/series @@ -8,0 +9 @@ +debian/abiword-libxml2-xmlCleanupParser-is-harmful.patch only in patch2: unchanged: --- abiword-2.8.2.orig/debian/patches/debian/abiword-libxml2-xmlCleanupParser-is-harmful.patch +++ abiword-2.8.2/debian/patches/debian/abiword-libxml2-xmlCleanupParser-is-harmful.patch @@ -0,0 +1,67 @@ +Description: remove harmful calls to xml{Init,Cleanup}Parser + Do not call xmlCleanupParser() ever to prevent TLS data corruption. And it + seems that xmlInitParser() is not needed either, as libxml2 calls it itself + when it's needed. +Origin: vendor, https://bugzilla.redhat.com/show_bug.cgi?id=554899#c12 +Bug: http://bugzilla.abisource.com/show_bug.cgi?id=12670 +Bug-Fedora: https://bugzilla.redhat.com/show_bug.cgi?id=554899 +Bug-Ubuntu: https://launchpad.net/bugs/519541 +Author: Michal Schmidt +Applied-Upstream: 2.8.3, commit:SVN r28765 +Last-Update: 2010-05-17 + +Index: b/src/af/util/xp/ut_xml_libxml2.cpp +=================================================================== +--- a/src/af/util/xp/ut_xml_libxml2.cpp 2009-06-26 18:44:37.000000000 +0100 ++++ b/src/af/util/xp/ut_xml_libxml2.cpp 2010-05-17 16:09:24.765599135 +0100 +@@ -298,18 +298,3 @@ + + return ret; + } +- +-// guardian because (afaik) xmlParserXXX aren't guaranteed to be idempotent +-static volatile int iLibXml2Guardian = 0; +- +-void UT_XML::_init() +-{ +- if(++iLibXml2Guardian == 1) +- xmlInitParser(); +-} +- +-void UT_XML::_cleanup() +-{ +- if(--iLibXml2Guardian == 0) +- xmlCleanupParser(); +-} +Index: b/src/af/util/xp/ut_xml.h +=================================================================== +--- a/src/af/util/xp/ut_xml.h 2008-05-12 15:50:06.000000000 +0100 ++++ b/src/af/util/xp/ut_xml.h 2010-05-17 16:09:24.765599135 +0100 +@@ -68,9 +68,6 @@ + + bool grow (char *& buffer, UT_uint32 & length, UT_uint32 & max, UT_uint32 require); + +- void _init(); +- void _cleanup(); +- + protected: + bool reset_all (); + private: +Index: b/src/af/util/xp/ut_xml.cpp +=================================================================== +--- a/src/af/util/xp/ut_xml.cpp 2008-05-12 15:50:06.000000000 +0100 ++++ b/src/af/util/xp/ut_xml.cpp 2010-05-17 16:09:24.765599135 +0100 +@@ -115,13 +115,10 @@ + m_pExpertListener(0), + m_pReader(0) + { +- _init(); + } + + UT_XML::~UT_XML () + { +- _cleanup(); +- + if (m_chardata_buffer) g_free (m_chardata_buffer); + + FREEP (m_namespace);