Bug#532232: rhythmbox SIGSEV on MTP device insertion
Mathieu GELI
mathieu.geli at gmail.com
Sun Jun 7 17:44:25 UTC 2009
Package: rhythmbox
Version: 0.12.1-1
Severity: normal
Hi,
rhythmbox crashes whenever I insert my MTP player (samsung YP-U3).
Here is the backtrace produced with gdb :
#0 IA__g_str_hash (v=0x0) at
/build/buildd-glib2.0_2.20.3-1-i386-o59wJY/glib2.0-2.20.3/glib/gstring.c:95
#1 0xb7191678 in g_hash_table_insert_internal (hash_table=0xa128f20,
key=0x0, value=0xa233530, keep_new_key=0)
at /build/buildd-glib2.0_2.20.3-1-i386-o59wJY/glib2.0-2.20.3/glib/ghash.c:268
#2 0xb3de0d08 in load_mtp_db_idle_cb (source=0x9be8a90) at rb-mtp-source.c:653
#3 0xb719d941 in g_idle_dispatch (source=0x9e66b88, callback=0,
user_data=0x9be8a90)
at /build/buildd-glib2.0_2.20.3-1-i386-o59wJY/glib2.0-2.20.3/glib/gmain.c:3919
#4 0xb719f848 in IA__g_main_context_dispatch (context=0x9bc2b08)
at /build/buildd-glib2.0_2.20.3-1-i386-o59wJY/glib2.0-2.20.3/glib/gmain.c:1814
#5 0xb71a2d73 in g_main_context_iterate (context=0x9bc2b08, block=1,
dispatch=1, self=0x9a731a8)
at /build/buildd-glib2.0_2.20.3-1-i386-o59wJY/glib2.0-2.20.3/glib/gmain.c:2445
#6 0xb71a324a in IA__g_main_loop_run (loop=0x9e1fd28) at
/build/buildd-glib2.0_2.20.3-1-i386-o59wJY/glib2.0-2.20.3/glib/gmain.c:2653
#7 0xb78ee3e9 in IA__gtk_main () at
/build/buildd-gtk+2.0_2.16.2-1-i386-bURDgj/gtk+2.0-2.16.2/gtk/gtkmain.c:1205
#8 0x080638e2 in main (argc=163630832, argv=0x5) at main.c:333
If I enable rhythmbox debug output I can see the latest album name is
NULL. That's what causing the crash when calling g_hash_insert().
Here's the simple fix I can produce :
--- rhythmbox-0.12.1/plugins/mtpdevice/rb-mtp-source.c 2009-04-20
09:38:15.000000000 +0200
+++ rhythmbox-0.12.1-new/plugins/mtpdevice/rb-mtp-source.c 2009-06-07
19:35:40.000000000 +0200
@@ -650,7 +650,8 @@
for (album = albums; album != NULL; album = album->next) {
rb_debug ("album: %s, %d tracks", album->name, album->no_tracks);
- g_hash_table_insert (priv->album_map, album->name, album);
+ if (album->name != NULL)
+ g_hash_table_insert (priv->album_map, album->name, album);
if (album->no_tracks != 0) {
device_forgets_albums = FALSE;
}
but no idea if that's the smartest way to solve it.
Cheers
--
Mathieu
More information about the pkg-gnome-maintainers
mailing list