Hi, xfce4-places-plugin 1.1.0-2 fixes a 100% reproducible segfault at exit. The debdiff is attached, and it'd be nice to have it in Lenny.
Cheers, -- Yves-Alexis
diff -u xfce4-places-plugin-1.1.0/debian/rules xfce4-places-plugin-1.1.0/debian/rules --- xfce4-places-plugin-1.1.0/debian/rules +++ xfce4-places-plugin-1.1.0/debian/rules @@ -1,6 +1,8 @@ #!/usr/bin/make -f # -*- makefile -*- +include /usr/share/quilt/quilt.make + # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 @@ -8,7 +10,7 @@ DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) -config.status: configure +config.status: patch configure dh_testdir ./configure \ --host=$(DEB_HOST_GNU_TYPE) \ @@ -25,7 +27,7 @@ touch $@ -clean: +clean: unpatch dh_testdir dh_testroot diff -u xfce4-places-plugin-1.1.0/debian/changelog xfce4-places-plugin-1.1.0/debian/changelog --- xfce4-places-plugin-1.1.0/debian/changelog +++ xfce4-places-plugin-1.1.0/debian/changelog @@ -1,3 +1,16 @@ +xfce4-places-plugin (1.1.0-2) unstable; urgency=low + + * debian/patches: + - 01_fix-segfault-exit added, fix segfaults at exit + (Xfce Goodies r6151) closes: #498009 + * debian/control: + - update standards version to 3.8.0. + - add build-dep on quilt. + * debian/rules: + - include quilt rules. + + -- Yves-Alexis Perez <[EMAIL PROTECTED]> Sun, 23 Nov 2008 13:55:00 +0100 + xfce4-places-plugin (1.1.0-1) unstable; urgency=low * New upstream release. diff -u xfce4-places-plugin-1.1.0/debian/control xfce4-places-plugin-1.1.0/debian/control --- xfce4-places-plugin-1.1.0/debian/control +++ xfce4-places-plugin-1.1.0/debian/control @@ -7,8 +7,8 @@ libgtk2.0-dev (>= 2.6.0), libxfce4util-dev (>= 4.3.99.1), xfce4-panel-dev (>= 4.3.99.1), libxfcegui4-dev (>= 4.3.99.1), libthunar-vfs-1-dev (>= 0.4.0), libexo-0.3-dev (>= 0.3.1.10), - libxml-parser-perl -Standards-Version: 3.7.3 + libxml-parser-perl, quilt +Standards-Version: 3.8.0 Homepage: http://goodies.xfce.org/projects/panel-plugins/xfce4-places-plugin Vcs-Svn: svn://svn.debian.org/svn/pkg-xfce/goodies/xfce4-places-plugin/ Vcs-Browser: http://svn.debian.org/wsvn/pkg-xfce/goodies/xfce4-places-plugin/ only in patch2: unchanged: --- xfce4-places-plugin-1.1.0.orig/debian/patches/series +++ xfce4-places-plugin-1.1.0/debian/patches/series @@ -0,0 +1 @@ +01_fix-segfault-exit.patch only in patch2: unchanged: --- xfce4-places-plugin-1.1.0.orig/debian/patches/01_fix-segfault-exit.patch +++ xfce4-places-plugin-1.1.0/debian/patches/01_fix-segfault-exit.patch @@ -0,0 +1,81 @@ +commit 1b061e0b1fce95840193ba0e08d4320410d6f3b9 +Author: ongardie <[EMAIL PROTECTED]> +Date: Fri Nov 21 19:19:51 2008 +0000 + + button.{c,h}: Fix warnings and segfault on plugin exit + + The warnings were caused by theme-changed after dispose. This would in + turn call places_button_resize, which expected the reference to the + plugin to be non-NULL. + + To fix this, button.c now disconnects its signal handlers on dispose and + also handles a non-NULL plugin reference in places_button_resize. + + These fixes had the side effect of not corrupting the view's memory. + + git-svn-id: http://svn.xfce.org/svn/goodies/xfce4-places-plugin/[EMAIL PROTECTED] 6bd62a53-d0f8-0310-92b8-b27fb566919e + +diff --git a/panel-plugin/button.c b/panel-plugin/button.c +index 8b439dc..bf6ab5f 100644 +--- a/panel-plugin/button.c ++++ b/panel-plugin/button.c +@@ -262,9 +262,9 @@ places_button_construct(PlacesButton *self, XfcePanelPlugin *plugin) + g_signal_connect(G_OBJECT(plugin), "size-changed", + G_CALLBACK(places_button_size_changed), self); + +- g_signal_connect(G_OBJECT(self), "style-set", ++ self->style_set_id = g_signal_connect(G_OBJECT(self), "style-set", + G_CALLBACK(places_button_theme_changed), NULL); +- g_signal_connect(G_OBJECT(self), "screen-changed", ++ self->screen_changed_id = g_signal_connect(G_OBJECT(self), "screen-changed", + G_CALLBACK(places_button_theme_changed), NULL); + + } +@@ -288,6 +288,16 @@ places_button_dispose(GObject *object) + { + PlacesButton *self = PLACES_BUTTON(object); + ++ if (self->style_set_id != 0) { ++ g_signal_handler_disconnect(self, self->style_set_id); ++ self->style_set_id = 0; ++ } ++ ++ if (self->screen_changed_id != 0) { ++ g_signal_handler_disconnect(self, self->screen_changed_id); ++ self->screen_changed_id = 0; ++ } ++ + if (self->plugin != NULL) { + g_object_unref(self->plugin); + self->plugin = NULL; +@@ -393,6 +403,9 @@ places_button_resize(PlacesButton *self) + gint button_width, button_height; + gint box_width, box_height; + ++ if (self->plugin == NULL) ++ return; ++ + new_size = xfce_panel_plugin_get_size(self->plugin); + self->plugin_size = new_size; + DBG("Panel size: %d", new_size); +@@ -440,7 +453,6 @@ places_button_resize(PlacesButton *self) + total_height += label_height; + } + } +- + /* at this point, total width and height reflect just image and label */ + /* now, add on the button and box overhead */ + total_width += button_width; +diff --git a/panel-plugin/button.h b/panel-plugin/button.h +index e35205c..87713f1 100644 +--- a/panel-plugin/button.h ++++ b/panel-plugin/button.h +@@ -51,6 +51,8 @@ struct _PlacesButton + gchar *label_text; + places_button_image_pixbuf_factory *pixbuf_factory; + gint plugin_size; ++ gulong style_set_id; ++ gulong screen_changed_id; + }; + + struct _PlacesButtonClass
signature.asc
Description: This is a digitally signed message part