Comment 1 for bug 262889

Revision history for this message
Ying-Chun Liu (paulliu) wrote :

gdb trace log:

Starting program: /tmp/gpaint-0.3.3/src/gpaint-2
[Thread debugging using libthread_db enabled]
[New Thread 0xb7263910 (LWP 14858)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb7263910 (LWP 14858)]
0x08062516 in text_attribute (tool=0x93d7cc0, attrib=GpaintFont,
    data=0x9481b68) at text.c:156
156 GtkWidget *widget = GTK_WIDGET(tool->canvas->drawing_area);
(gdb) bt
#0 0x08062516 in text_attribute (tool=0x93d7cc0, attrib=GpaintFont,
    data=0x9481b68) at text.c:156
#1 0xb7585074 in g_cclosure_marshal_VOID__VOID ()
   from /usr/lib/libgobject-2.0.so.0
#2 0xb7577923 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#3 0xb758ae9d in ?? () from /usr/lib/libgobject-2.0.so.0
#4 0x091d61e8 in ?? ()
#5 0x00000000 in ?? ()
(gdb) print tool->canvas
$1 = (gpaint_canvas *) 0x0
(gdb)

The tool->canvas is only set on tool_palette.c on_tool_select() at line 400:
    canvas_set_tool(canvas_lookup(GTK_WIDGET(tb->widget)), tb->tool);
Which means the users have to click the text-tool button at least once to set the tool->canvas to avoid the crash.

Please report the bug to upstream. Thanks.