Package: claws-mail
Version: 3.8.0-1
Severity: minor

Dear maintainer,

Claws-Mail crashes when one changes messages while checking a PGP signature.

To reproduce:

1) Find a message which is signed by a key that you don’t have in your
keychain yet
2) Press "c" to check the signature or click on the little icon ‘Check
Signature’
3) Quickly switch to another message, for example by
   a) clicking on another folder in the folder list
   b) clicking on another message in the message list
4) Observe how Claws-Mail crashes immediately.

I assume that this will also happen if you have the key already in your
keychain but manage to switch messages before checking succeeds. However, if
the key is not in your keychain, it will be much easier to switch messages fast
enough.

I attached a backtrace which was created as follows:

1) $ gdb claws-mail
2) (gdb) run
3) open the folder gmane.linux.debian.devel.x
4) open the message
<20120129132459.GH32587__5558.65256251327$1327843646$gmane$o...@mraw.org> by
Cyril Brulebois (I don’t have the key yet).
5) press c
6) click on another message very fast
7) (gdb) set logging on
8) (gdb) bt full
9) (gdb) quit

The bug is really only minor, although Claws-Mail crashes, because it will
usually not result in data loss and because it is rather unlikely that one
wants to switch messages while checking a signature.

If you need any other backtraces, please do not hesitate to tell me! :)

Best regards & thank you very much for your work!

Claudius Hubig



-- System Information:
Debian Release: wheezy/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'stable-updates'), (500, 'unstable'), 
(500, 'stable'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 3.2.1.a2017.2 (SMP w/4 CPU cores)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages claws-mail depends on:
ii  libc6               2.13-24
ii  libcairo2           1.10.2-6.2
ii  libcompfaceg1       1:1.5.2-5
ii  libdbus-glib-1-2    0.98-1
ii  libenchant1c2a      1.6.0-7
ii  libetpan15          1.0-5
ii  libgdk-pixbuf2.0-0  2.24.0-2
ii  libglib2.0-0        2.30.2-4
ii  libgnutls26         2.12.16-1
ii  libgtk2.0-0         2.24.8-3
ii  libice6             2:1.0.7-2
ii  libldap-2.4-2       2.4.28-1.1
ii  libpango1.0-0       1.29.4-2
ii  libpisock9          0.12.5-4+b1
ii  libsm6              2:1.2.0-2
ii  xdg-utils           1.1.0~rc1+git20111210-5

Versions of packages claws-mail recommends:
ii  aspell-de [aspell-dictionary]  20110609-1
ii  aspell-en [aspell-dictionary]  7.1-0-1
ii  claws-mail-i18n                3.8.0-1
ii  xfonts-100dpi                  1:1.0.3
ii  xfonts-100dpi-transcoded       1:1.0.3
ii  xfonts-75dpi                   1:1.0.3
ii  xfonts-75dpi-transcoded        1:1.0.3

Versions of packages claws-mail suggests:
ii  claws-mail-doc                     <none>
ii  claws-mail-tools                   3.8.0-1
ii  gedit | kwrite | mousepad | nedit  <none>
ii  iceweasel [www-browser]            9.0.1-1
ii  lynx-cur [www-browser]             2.8.8dev.9-3
ii  opera-next [www-browser]           12.00.1256
ii  w3m [www-browser]                  0.5.3-5

-- no debconf information
#0  0x000000000051e681 in mimeview_check_data_reset (mimeview=0xe18a00) at 
mimeview.c:1101
        must_free = 1
        must_destroy = 0
#1  0x000000000051e757 in mimeview_check_sig_thread_cb (data=0xe18a00) at 
mimeview.c:1156
        mimeview = 0xe18a00
        mimeinfo = 0x10c9c70
#2  0x00000000005210ca in mimeview_clear (mimeview=0xe18a00) at mimeview.c:981
        model = 0xddc2d0
#3  0x0000000000513eda in messageview_clear (messageview=0xe15900) at 
messageview.c:1436
No locals.
#4  0x00000000005a1a60 in summary_clear_all (summaryview=0xdbdde0) at 
summaryview.c:1555
No locals.
#5  0x00000000005a7a1c in summary_show (summaryview=0xdbdde0, item=0x0) at 
summaryview.c:1218
        ctree = 0xbd4610
        node = 0x0
        mlist = 0x0
        buf = 0x0
        is_refresh = 0
        selected_msgnum = 0
        displayed_msgnum = 0
        cur = <optimized out>
        not_killed = <optimized out>
        hidden_removed = 0
        start = {tv_sec = 1327935851, tv_usec = 625939}
        end = {tv_sec = 17474160, tv_usec = 0}
        diff = <optimized out>
        timing_name = 0x64f9c2 ""
        __FUNCTION__ = "summary_show"
#6  0x00000000004ceb72 in folderview_close_opened (folderview=0xd67660) at 
folderview.c:2090
        buf = 0x114e600 "\360!\025\001"
        olditem = 0xf59ba0
#7  0x00000000004cee62 in folderview_selected (ctree=0xbd4420, row=0x1074380, 
column=-1, folderview=0xd67660) at folderview.c:2153
        can_select = 0
        opened = <optimized out>
        item = 0xf52650
        buf = <optimized out>
        res = 0
        old_opened = 0xfc8920
        start = {tv_sec = 1327935851, tv_usec = 624000}
        end = {tv_sec = 3, tv_usec = 140737305917429}
        diff = <optimized out>
        timing_name = 0x64f9c2 ""
        __FUNCTION__ = "folderview_selected"
#8  0x00007ffff51dc804 in g_closure_invoke (closure=0xd86030, return_value=0x0, 
n_param_values=3, param_values=0x114af20, invocation_hint=<optimized out>) at 
/tmp/buildd/glib2.0-2.30.2/./gobject/gclosure.c:774
        marshal = 0x63a810 <claws_marshal_VOID__POINTER_INT>
        marshal_data = <optimized out>
        in_marshal = <optimized out>
        __PRETTY_FUNCTION__ = "g_closure_invoke"
#9  0x00007ffff51ee78a in signal_emit_unlocked_R (node=<optimized out>, 
detail=0, instance=0xbd4420, emission_return=0x0, 
instance_and_params=0x114af20) at 
/tmp/buildd/glib2.0-2.30.2/./gobject/gsignal.c:3272
        tmp = <optimized out>
        handler = 0xd86790
        accumulator = 0x0
        emission = {next = 0x7fffffffdf50, instance = 0xbd4420, ihint = 
{signal_id = 119, detail = 0, run_type = G_SIGNAL_RUN_FIRST}, state = 
EMISSION_RUN, chain_type = 4}
        class_closure = 0xbf35a0
        hlist = 0x7ffff54276d0
        handler_list = 0xd86790
        return_accu = 0x0
        accu = {g_type = 0, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong 
= 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, 
{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, 
v_float = 0, v_double = 0, 
              v_pointer = 0x0}}}
        signal_id = 119
        max_sequential_handler_number = 3622
        return_value_altered = 1
#10 0x00007ffff51f7e11 in g_signal_emit_valist (instance=<optimized out>, 
signal_id=<optimized out>, detail=<optimized out>, var_args=<optimized out>) at 
/tmp/buildd/glib2.0-2.30.2/./gobject/gsignal.c:3003
        instance_and_params = 0x114af20
        signal_return_type = 4
        param_values = 0x114af38
        node = 0xc17d20
        i = <optimized out>
        n_params = 2
        __PRETTY_FUNCTION__ = "g_signal_emit_valist"
#11 0x00007ffff51f7fb2 in g_signal_emit (instance=<optimized out>, 
signal_id=<optimized out>, detail=<optimized out>) at 
/tmp/buildd/glib2.0-2.30.2/./gobject/gsignal.c:3060
        var_args = {{gp_offset = 40, fp_offset = 48, overflow_arg_area = 
0x7fffffff8d00, reg_save_area = 0x7fffffff8c40}}
#12 0x000000000060557a in gtk_cmctree_select (ctree=0xbd4420, node=0x1074380) 
at gtkcmctree.c:3899
No locals.
#13 0x0000000000605ac1 in real_unselect_all (clist=0xbd4420) at 
gtkcmctree.c:2882
        ctree = 0xbd4420
        node = <optimized out>
        list = <optimized out>
#14 0x0000000000627097 in gtk_sctree_real_unselect_all (clist=0xbd4420) at 
gtksctree.c:787
        sctree = 0xbd4420
        should_freeze = 0
#15 0x0000000000625429 in select_row (sctree=0xbd4420, row=15, col=2, 
state=<optimized out>, _node=0x0) at gtksctree.c:383
        range = 0
        additive = <optimized out>
#16 0x0000000000627c9e in gtk_sctree_button_press (widget=<optimized out>, 
event=0xfb4150) at gtksctree.c:549
        sctree = 0xbd4420
        clist = 0xbd4420
        on_row = 1
        row = 15
        col = 2
        retval = 0
#17 0x00007ffff74992e8 in _gtk_marshal_BOOLEAN__BOXED (closure=0xc080e0, 
return_value=0x7fffffffdfa0, n_param_values=<optimized out>, 
param_values=0x7fffdc00b520, invocation_hint=<optimized out>, 
marshal_data=<optimized out>)
    at /tmp/buildd/gtk+2.0-2.24.8/gtk/gtkmarshalers.c:86
        callback = 0x627700 <gtk_sctree_button_press>
        cc = 0xc080e0
        data1 = 0xbd4420
        data2 = <optimized out>
        v_return = <optimized out>
        __PRETTY_FUNCTION__ = "_gtk_marshal_BOOLEAN__BOXED"
#18 0x00007ffff51dc804 in g_closure_invoke (closure=0xc080e0, 
return_value=0x7fffffffdfa0, n_param_values=2, param_values=0x7fffdc00b520, 
invocation_hint=<optimized out>) at 
/tmp/buildd/glib2.0-2.30.2/./gobject/gclosure.c:774
        marshal = 0x7ffff51db0a0 <g_type_class_meta_marshal>
        marshal_data = <optimized out>
        in_marshal = <optimized out>
        __PRETTY_FUNCTION__ = "g_closure_invoke"
#19 0x00007ffff51ee5bf in signal_emit_unlocked_R (node=<optimized out>, 
detail=0, instance=0xbd4420, emission_return=0x7fffffffe100, 
instance_and_params=0x7fffdc00b520) at 
/tmp/buildd/glib2.0-2.30.2/./gobject/gsignal.c:3310
        accumulator = 0xbd2d40
        emission = {next = 0x0, instance = 0xbd4420, ihint = {signal_id = 43, 
detail = 0, run_type = G_SIGNAL_RUN_LAST}, state = EMISSION_RUN, chain_type = 
12443552}
        class_closure = 0xc080e0
        hlist = 0x0
        handler_list = 0xd72130
        return_accu = 0x7fffffffdfa0
        accu = {g_type = 20, data = {{v_int = 0, v_uint = 0, v_long = 0, 
v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 
0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 
0, v_float = 0, v_double = 0, 
              v_pointer = 0x0}}}
        signal_id = 43
        max_sequential_handler_number = 3622
        return_value_altered = 1
#20 0x00007ffff51f7be3 in g_signal_emit_valist (instance=<optimized out>, 
signal_id=<optimized out>, detail=<optimized out>, var_args=<optimized out>) at 
/tmp/buildd/glib2.0-2.30.2/./gobject/gsignal.c:3013
        return_value = {g_type = 20, data = {{v_int = 0, v_uint = 0, v_long = 
0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer 
= 0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 
= 0, v_float = 0, 
              v_double = 0, v_pointer = 0x0}}}
        error = 0x0
        rtype = 20
        static_scope = 0
        instance_and_params = 0x7fffdc00b520
        signal_return_type = 20
        param_values = 0x7fffdc00b538
        node = 0xc08b20
        i = <optimized out>
        n_params = 1
        __PRETTY_FUNCTION__ = "g_signal_emit_valist"
#21 0x00007ffff51f7fb2 in g_signal_emit (instance=<optimized out>, 
signal_id=<optimized out>, detail=<optimized out>) at 
/tmp/buildd/glib2.0-2.30.2/./gobject/gsignal.c:3060
        var_args = {{gp_offset = 32, fp_offset = 48, overflow_arg_area = 
0x7fffffffe240, reg_save_area = 0x7fffffffe180}}
#22 0x00007ffff75b2141 in gtk_widget_event_internal (widget=0xbd4420, 
event=0xfb4150) at /tmp/buildd/gtk+2.0-2.24.8/gtk/gtkwidget.c:4984
        signal_num = <optimized out>
        return_val = 0
#23 0x00007ffff74974a3 in IA__gtk_propagate_event (widget=0xbd4420, 
event=0xfb4150) at /tmp/buildd/gtk+2.0-2.24.8/gtk/gtkmain.c:2489
        tmp = <optimized out>
        handled_event = <optimized out>
        __PRETTY_FUNCTION__ = "IA__gtk_propagate_event"
#24 0x00007ffff7497803 in IA__gtk_main_do_event (event=0xfb4150) at 
/tmp/buildd/gtk+2.0-2.24.8/gtk/gtkmain.c:1684
        event_widget = <optimized out>
        grab_widget = 0xbd4420
        window_group = <optimized out>
        rewritten_event = <optimized out>
        tmp_list = <optimized out>
        __PRETTY_FUNCTION__ = "IA__gtk_main_do_event"
#25 0x00007ffff71031cc in gdk_event_dispatch (source=<optimized out>, 
callback=<optimized out>, user_data=<optimized out>) at 
/tmp/buildd/gtk+2.0-2.24.8/gdk/x11/gdkevents-x11.c:2377
        display = <optimized out>
        event = 0xfb4150
#26 0x00007ffff4d170cf in g_main_dispatch (context=0xbdd6f0) at 
/tmp/buildd/glib2.0-2.30.2/./glib/gmain.c:2442
        dispatch = 0x7ffff7103180 <gdk_event_dispatch>
        was_in_call = 0
        user_data = 0x0
        callback = 0
        cb_funcs = 0x0
        cb_data = 0x0
        current_source_link = {data = 0xbdd600, next = 0x0}
        need_destroy = <optimized out>
        source = 0xbdd600
        current = 0xe0fc60
        i = <optimized out>
#27 g_main_context_dispatch (context=0xbdd6f0) at 
/tmp/buildd/glib2.0-2.30.2/./glib/gmain.c:2998
No locals.
#28 0x00007ffff4d178c8 in g_main_context_iterate (context=0xbdd6f0, 
block=<optimized out>, dispatch=1, self=<optimized out>) at 
/tmp/buildd/glib2.0-2.30.2/./glib/gmain.c:3076
        max_priority = 2147483647
        timeout = 446
        some_ready = 1
        nfds = 9
        allocated_nfds = <optimized out>
        fds = <optimized out>
#29 0x00007ffff4d17e02 in g_main_loop_run (loop=0x9a3300) at 
/tmp/buildd/glib2.0-2.30.2/./glib/gmain.c:3284
        __PRETTY_FUNCTION__ = "g_main_loop_run"
#30 0x00007ffff7496857 in IA__gtk_main () at 
/tmp/buildd/gtk+2.0-2.24.8/gtk/gtkmain.c:1256
        tmp_list = <optimized out>
        functions = 0x0
        init = <optimized out>
        loop = 0x9a3300
#31 0x000000000044dc70 in main (argc=1, argv=0x7fffffffe8b8) at main.c:1653
        connection = 0xbe11f8
        error = 0x0
        nm_proxy = 0xbd6b10
        userrc = <optimized out>
        mainwin = 0xc21a70
        folderview = 0xd67660
        icon = 0xc148f0
        crash_file_present = <optimized out>
        num_folder_class = <optimized out>
        asked_for_migration = <optimized out>
        start_done = <optimized out>
        gui_manager = <optimized out>
        plug_list = 0x0
        never_ran = 0
        start = {tv_sec = 1327935847, tv_usec = 127508}
        end = {tv_sec = 1327935848, tv_usec = 283491}
        diff = {tv_sec = 1, tv_usec = 155983}
        timing_name = 0x65e8e8 "startup"
        __FUNCTION__ = "main"
A debugging session is active.

        Inferior 1 [process 28742] will be killed.

Quit anyway? (y or n) 

Reply via email to