I worked out a more complete backtrace compiling the package from sources: #0 sanitize_path (str=0x0, filesystem_type=0xa2c000 "ext3/ext4") at sj-extracting.c:860 #1 0x000000000041854d in filepath_parse_pattern (pattern=<value optimized out>, track=0xb3c180) at sj-extracting.c:978 #2 0x00000000004186e6 in build_filename (track=0xb3c180, temp_filename=0, error=<value optimized out>) at sj-extracting.c:141 #3 0x0000000000418956 in pop_and_extract (overwrite_mode=0x62ba00) at sj-extracting.c:404 #4 0x000000000041956f in on_extract_activate (button=<value optimized out>, user_data=<value optimized out>) at sj-extracting.c:835 #5 0x00007ffff558847e in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 #6 0x00007ffff559e3f7 in ?? () from /usr/lib/libgobject-2.0.so.0 #7 0x00007ffff559fa76 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 #8 0x00007ffff559ffc3 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 #9 0x00007ffff6224235 in ?? () from /usr/lib/libgtk-x11-2.0.so.0 #10 0x00007ffff558847e in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 #11 0x00007ffff559dcc1 in ?? () from /usr/lib/libgobject-2.0.so.0 #12 0x00007ffff559fa76 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 #13 0x00007ffff559ffc3 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 #14 0x00007ffff6222f3d in ?? () from /usr/lib/libgtk-x11-2.0.so.0 #15 0x00007ffff62cfc08 in ?? () from /usr/lib/libgtk-x11-2.0.so.0 #16 0x00007ffff558847e in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 #17 0x00007ffff559e040 in ?? () from /usr/lib/libgobject-2.0.so.0 #18 0x00007ffff559f8bd in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 #19 0x00007ffff559ffc3 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 #20 0x00007ffff63e5f6f in ?? () from /usr/lib/libgtk-x11-2.0.so.0 #21 0x00007ffff62c80f3 in gtk_propagate_event () from /usr/lib/libgtk-x11-2.0.so.0 #22 0x00007ffff62c91ab in gtk_main_do_event () from /usr/lib/libgtk-x11-2.0.so.0 #23 0x00007ffff5f3d3bc in ?? () from /usr/lib/libgdk-x11-2.0.so.0 #24 0x00007ffff50d96c2 in g_main_context_dispatch () from /lib/libglib-2.0.so.0 #25 0x00007ffff50dd538 in ?? () from /lib/libglib-2.0.so.0 #26 0x00007ffff50dda45 in g_main_loop_run () from /lib/libglib-2.0.so.0 #27 0x00007ffff62c9647 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0 #28 0x0000000000414ced in main (argc=1, argv=0x7fffffffe108) at sj-main.c:1884
Apparently the problem is this: track->album->artist is NULL, because the user didn't change the value of the "Artist" field. Moreover, by default the path contains the artist name, so sanitize_path tries to dereference it (wrongly assuming that it's not NULL). Thus, a SIGSEGV is casted. Probably, there should be some input check before constructing the path. A dirty fix could be replacing the NULL string with an empty string (which then would fail when creating the directory). Giovanni. -- Giovanni Mascellani <mascell...@poisson.phc.unipi.it> Pisa, Italy Web: http://poisson.phc.unipi.it/~mascellani Jabber: g.mascell...@jabber.org / giova...@elabor.homelinux.org
signature.asc
Description: OpenPGP digital signature