Package: cccd
Version: 0.3beta4-6.1
Severity: grave

Program received signal SIGSEGV, Segmentation fault.
0x00000000004034c7 in update_status_string () at cccd.c:940
940         sprintf(disp.status_string, "%s", "Error");
(gdb) bt
#0  0x00000000004034c7 in update_status_string () at cccd.c:940
#1  0x000000000040448f in play_callback (widget=0x6ac190, data=<value
optimized out>)
    at cccd.c:455
#2  0x00007ffff5bad47e in IA__g_closure_invoke (closure=0x6ad3d0,
return_value=0x0, 
    n_param_values=1, param_values=0x6b42c0,
    invocation_hint=0x7fffffffd540)
    at /tmp/buildd/glib2.0-2.24.1/gobject/gclosure.c:767
#3  0x00007ffff5bc33f7 in signal_emit_unlocked_R (node=0x67a0a0, 
    detail=<value optimized out>, instance=<value optimized out>, 
    emission_return=<value optimized out>, instance_and_params=<value
    optimized out>)
    at /tmp/buildd/glib2.0-2.24.1/gobject/gsignal.c:3248
....


(gdb) p disp
$1 = {progress_bar = 0x6ac610, drawing_area = 0x6745f0, pixmap = 0x0,
gc = 0x0, 
  title_font = 0x0, status_font = 0x0, time_font = 0x0, cd_title =
  0x0, track_title = 0x0, 
  status_string = 0x0, time_string = 0x0, mode_string = 0x0, timeout =
  0, 
  timemode = ABS_DONE}

So it is trying to write to a NULL pointer....


Looking more deeply into this I noticed that the init_display() was
not being called. It turns out that GDK_STRUCTURE_MASK needs to be set
*explicitly* because it is off by default. The documentation says
regarding map-event and configure-event,

"To receive this signal, the GdkWindow associated to the widget needs
to enable the GDK_STRUCTURE_MASK mask. GDK will enable this mask
automatically for all new windows."
 - http://library.gnome.org/devel/gtk/unstable/GtkWidget.html

So basically the patch is,

diff cccd-0.3beta4/cccd.c cccd-0.3beta4-new//cccd.c
275,277c275,276
<   gtk_widget_set_events(disp.drawing_area,
<                       gtk_widget_get_events(disp.drawing_area) |
<                       GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK);
---
>   gtk_widget_add_events(disp.drawing_area,
>                       GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK | 
> GDK_STRUCTURE_MASK);


I've attached a unified patch.

If you don't have time to upload this, let me know and I'll NMU this
small patch.

- Adam


-- System Information:
Debian Release: squeeze/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (50, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.34-1-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_CA.UTF-8, LC_CTYPE=en_CA.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages cccd depends on:
ii  libatk1.0-0                   1.30.0-1   The ATK accessibility toolkit
ii  libc6                         2.11.1-3   Embedded GNU C Library: Shared lib
ii  libcairo2                     1.8.10-4   The Cairo 2D vector graphics libra
ii  libglib2.0-0                  2.24.1-1   The GLib library of C routines
ii  libgtk2.0-0                   2.20.1-1   The GTK+ graphical user interface 
ii  libpango1.0-0                 1.28.0-1   Layout and rendering of internatio

cccd recommends no packages.

cccd suggests no packages.

-- no debconf information
Only in cccd-0.3beta4-new: cccd
diff -u cccd-0.3beta4/cccd.c cccd-0.3beta4-new/cccd.c
--- cccd-0.3beta4/cccd.c	2010-07-17 15:01:38.000000000 -0500
+++ cccd-0.3beta4-new/cccd.c	2010-07-17 15:14:40.020019400 -0500
@@ -272,9 +272,8 @@
   /* area where all text appears */
   disp.drawing_area = gtk_drawing_area_new();
   gtk_drawing_area_size(GTK_DRAWING_AREA(disp.drawing_area), 120, 60);
-  gtk_widget_set_events(disp.drawing_area,
-			gtk_widget_get_events(disp.drawing_area) |
-			GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK);
+  gtk_widget_add_events(disp.drawing_area,
+			GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK | GDK_STRUCTURE_MASK);
   gtk_signal_connect(GTK_OBJECT(disp.drawing_area), "expose_event",
 		     (GtkSignalFunc) expose_event, NULL);
   gtk_signal_connect(GTK_OBJECT(disp.drawing_area), "configure_event",
Only in cccd-0.3beta4-new: cccd.o
Only in cccd-0.3beta4-new: cddb.o
Only in cccd-0.3beta4-new: cddbp.o
Only in cccd-0.3beta4-new: cd.o
Only in cccd-0.3beta4-new: core
Common subdirectories: cccd-0.3beta4/debian and cccd-0.3beta4-new/debian
Only in cccd-0.3beta4-new: info.o
Only in cccd-0.3beta4-new: misc.o
Only in cccd-0.3beta4-new: options.o

Reply via email to