Package: xfce4-sensors-plugin Version: 0.10.99.6-1.dwfix Followup-For: Bug #519181
Attached is a patch showing changes I made which fix the crash problem on my own machine. I created the patch like this: diff -u hddtemp.c.orig hddtemp.c > ~/xfce4-sensors-plugin-0.10.99.6-1.diff HTH, Dave W. -- System Information: Debian Release: squeeze/sid APT prefers unstable APT policy: (990, 'unstable'), (350, 'experimental') Architecture: amd64 (x86_64) Kernel: Linux 2.6.28-2s13073.090316.desktop.uvesafb (SMP w/2 CPU cores; PREEMPT) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/bash Versions of packages xfce4-sensors-plugin depends on: ii libatk1.0-0 1.24.0-2 The ATK accessibility toolkit ii libc6 2.9-6 GNU C Library: Shared libraries ii libcairo2 1.8.6-2+b1 The Cairo 2D vector graphics libra ii libfontconfig1 2.6.0-3 generic font configuration library ii libfreetype6 2.3.9-4 FreeType 2 font engine, shared lib ii libglib2.0-0 2.20.0-2 The GLib library of C routines ii libgtk2.0-0 2.14.7-4+b1 The GTK+ graphical user interface ii libpango1.0-0 1.22.4-2 Layout and rendering of internatio ii libsensors4 1:3.1.0-2 library to read temperature/voltag ii libxfce4util4 4.4.2-3 Utility functions library for Xfce ii libxfcegui4-4 4.4.2-4 Basic GUI C functions for Xfce4 ii xfce4-panel 4.4.2-6 The Xfce4 desktop environment pane Versions of packages xfce4-sensors-plugin recommends: ii hddtemp 0.3-beta15-45 hard drive temperature monitoring ii lm-sensors 1:3.1.0-2 utilities to read temperature/volt Versions of packages xfce4-sensors-plugin suggests: pn xsensors <none> (no description available) -- no debconf information
--- xfce4-sensors-plugin-0.10.99.6/lib/hddtemp.c 2008-11-03 19:03:05.000000000 -0500 +++ xfce4-sensors-plugin/xfce4-sensors-plugin-0.10.99.6/lib/hddtemp.c 2009-03-20 16:32:20.000000000 -0400 @@ -435,9 +435,6 @@ { gchar *standard_output, *standard_error; gchar *cmd_line, *msg_text; -#ifndef HAVE_LIBNOTIFY - gchar *checktext; -#endif gint exit_status=0; double value; gboolean result, nevershowagain; @@ -509,6 +506,10 @@ else if ((exit_status==256 || (standard_error && strlen(standard_error)>0)) && access (PATH_HDDTEMP, X_OK)==0) /* || strlen(standard_error)>0) */ { +#ifndef HAVE_LIBNOTIFY + gchar *checktext; +#endif + /* note that this check does only work for some versions of hddtemp. */ if (!nevershowagain) { msg_text = g_strdup_printf(_("\"hddtemp\" was not executed correctly, " @@ -533,6 +534,10 @@ if (suppressmessage!=NULL) *suppressmessage = nevershowagain; + +#ifndef HAVE_LIBNOTIFY + g_free (checktext); +#endif } else { DBG ("Suppressing dialog with exit_code=256 or output on standard_error"); @@ -549,8 +554,12 @@ else if (error && (!result || exit_status!=0)) { - DBG ("error %s\n", error->message); + DBG ("error %s\n", error->message); if (!nevershowagain) { +#ifndef HAVE_LIBNOTIFY + gchar *checktext; +#endif + msg_text = g_strdup_printf (_("An error occurred when executing" " \"%s\":\n%s"), cmd_line, error->message); #ifdef HAVE_LIBNOTIFY @@ -561,8 +570,13 @@ nevershowagain = quick_message_with_checkbox (msg_text, checktext); #endif - if (suppressmessage!=NULL) + if (suppressmessage!=NULL) *suppressmessage = nevershowagain; + +#ifndef HAVE_LIBNOTIFY + g_free (checktext); +#endif + } else { DBG ("Suppressing dialog because of error in g_spawn_cl"); @@ -586,9 +600,6 @@ g_free (standard_output); g_free (standard_error); g_free (msg_text); -#ifndef HAVE_LIBNOTIFY - g_free (checktext); -#endif TRACE ("leaves get_hddtemp_value");