Package: evolution-data-server Version: 1.6.3-3 Severity: important Tags: patch
evolution-data-server is crashing regularly when setup to query a LDAP server. This is caused by missing checks, for example: Thread 81 (Thread -1278219344 (LWP 18049)): #0 0x00000000 in ?? () #1 0xb714b83d in ldap_op_finished (op=0x82616f8) at e-book-backend-ldap.c:1023 #2 0xb7f1bf72 in e_book_backend_stop_book_view (backend=0x80a2598, book_view=0x818a2c0) at e-book-backend.c:324 #3 0xb7f1d9ab in impl_GNOME_Evolution_Addressbook_BookView_stop ( servant=0x818a2d4, ev=0xb3cfe358) at e-data-book-view.c:450 (gdb) up #1 0xb714b83d in ldap_op_finished (op=0x82616f8) at e-book-backend-ldap.c:1023 (gdb) print op->dtor $2 = (LDAPOpDtor) 0 I'm attaching a patch backporting the fixes that were applied to eds 1.8. Please apply it for etch, as it makes evolution almost unusable in a LDAP-based corporate environment. -- System Information: Debian Release: 4.0 APT prefers testing APT policy: (500, 'testing') Architecture: i386 (i686) Shell: /bin/sh linked to /bin/bash Kernel: Linux 2.6.18-3-686 Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8) Versions of packages evolution-data-server depends on: ii evolution-data-server-comm 1.6.3-3 architecture independent files for ii libavahi-client3 0.6.15-2 Avahi client library ii libavahi-common3 0.6.15-2 Avahi common library ii libavahi-glib1 0.6.15-2 Avahi glib integration library ii libbonobo2-0 2.14.0-3 Bonobo CORBA interfaces library ii libc6 2.3.6.ds1-8 GNU C Library: Shared libraries ii libcamel1.2-8 1.6.3-3 The Evolution MIME message handlin ii libdb4.4 4.4.20-8 Berkeley v4.4 Database Libraries [ ii libebook1.2-5 1.6.3-3 Client library for evolution addre ii libecal1.2-6 1.6.3-3 Client library for evolution calen ii libedata-book1.2-2 1.6.3-3 Backend library for evolution addr ii libedata-cal1.2-5 1.6.3-3 Backend library for evolution cale ii libedataserver1.2-7 1.6.3-3 Utility library for evolution data ii libegroupwise1.2-10 1.6.3-3 Client library for accessing group ii libgconf2-4 2.16.0-3 GNOME configuration database syste ii libgcrypt11 1.2.3-2 LGPL Crypto library - runtime libr ii libglib2.0-0 2.12.4-2 The GLib library of C routines ii libgnome2-0 2.16.0-2 The GNOME 2 library - runtime file ii libgnomevfs2-0 2.14.2-4 GNOME virtual file-system (runtime ii libgnutls13 1.4.4-3 the GNU TLS library - runtime libr ii libgpg-error0 1.4-1 library for common error values an ii libkrb53 1.4.4-5 MIT Kerberos runtime libraries ii libldap2 2.1.30-13.2 OpenLDAP libraries ii libnspr4-0d 1.8.0.8-1 NetScape Portable Runtime Library ii libnss3-0d 1.8.0.8-1 Network Security Service libraries ii liborbit2 1:2.14.3-0.1 libraries for ORBit2 - a CORBA ORB ii libpopt0 1.10-3 lib for parsing cmdline parameters ii libsoup2.2-8 2.2.98-2 an HTTP library implementation in ii libtasn1-3 0.3.6-2 Manage ASN.1 structures (runtime) ii libxml2 2.6.27.dfsg-1 GNOME XML library ii zlib1g 1:1.2.3-13 compression library - runtime evolution-data-server recommends no packages. -- no debconf information
--- addressbook/backends/ldap/e-book-backend-ldap.c.orig 2006-05-03 15:59:23.000000000 +0200 +++ addressbook/backends/ldap/e-book-backend-ldap.c 2007-01-11 09:20:40.000000000 +0100 @@ -1020,7 +1020,8 @@ ldap_abandon (bl->priv->ldap, op->id); g_static_rec_mutex_unlock (&eds_ldap_handler_lock); - op->dtor (op); + if (op->dtor) + op->dtor (op); bl->priv->active_ops--; @@ -3851,7 +3852,7 @@ d(printf ("looked up msgid %d, got op %p\n", msgid, op)); - if (op) + if (op && op->handler) op->handler (op, res); else g_warning ("unknown operation, msgid = %d", msgid);