Subject: libgcal0: Segfault due to early global cleanup of libxml
Package: libgcal0
Version: 0.9.4-1
Justification: breaks unrelated software
Severity: critical
Tags: upstream patch

*** Please type your report below this line ***

libxml2 has a global cleanup function that is meant to be called
at the end of an application called xmlCleanupParser().  This
ends up freeing a number of global tables inside libxml2.

If an application uses both libgcal and libxml2, and get_the_url()
is called in libgcal, libxml2 stops working for the app, and
often causes a segfault when it tries to access the global tables
that are now freed.

This patch below fixes the issue, and has been included in
upstream.  The latest upstream sources can be found here:

Tarballs: http://code.google.com/p/libgcal/
Git repo: http://gitorious.org/libgcal

Note that some software is already checking for >= 0.9.6 in
configure scripts, to avoid this bug, and the latest 0.9.6
release fixes an API bug that the binary package has a
special patch for.  If at all possible, upgrading Squeeze
to upstream 0.9.6 would be much preferred.  But if not,
this patch at least.

Thanks,
- Chris


Patch:


diff --git a/src/gcal_parser.c b/src/gcal_parser.c
index 437d6ac..f1aa13c 100644
--- a/src/gcal_parser.c
+++ b/src/gcal_parser.c
@@ -103,7 +103,6 @@ int get_the_url(char *data, int length, char **url)
                result = 0;
 
        xmlFreeDoc(doc);
-       xmlCleanupParser();
 
 exit:
        return result;
@@ -160,7 +159,6 @@ int get_edit_url(char *data, int length, char **url)
                result = 0;
 
        xmlFreeDoc(doc);
-       xmlCleanupParser();
 
 exit:
        return result;
@@ -183,7 +181,6 @@ int get_edit_etag(char *data, int length, char **url)
                result = 0;
 
        xmlFreeDoc(doc);
-       xmlCleanupParser();
 
 exit:
        return result;


-- System Information:
Debian Release: squeeze/sid
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: i386 (i686)

Kernel: Linux 2.6.35.4 (PREEMPT)
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)
Shell: /bin/sh linked to /bin/dash

Versions of packages libgcal0 depends on:
ii  libc6                       2.11.2-5     Embedded GNU C Library: Shared lib
ii  libcurl3-gnutls             7.21.0-1     Multi-protocol file transfer libra
ii  libxml2                     2.7.7.dfsg-4 GNOME XML library

libgcal0 recommends no packages.

libgcal0 suggests no packages.

-- no debconf information




-- 
To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to