Comment 8 for bug 235829

Revision history for this message
Kees Cook (kees) wrote :

This is due to a mismatch between the signal definition and the signal arguments passed by rhythmbox:

rhythmbox-0.11.5/shell/rb-playlist-manager.c:

playlist_load_ended_cb (TotemPlParser *parser, const char *uri, GHashTable *metadata, RBPlaylistManager *mgr)

...
                g_signal_connect_object (parser, "playlist-ended",

                                         G_CALLBACK (playlist_load_ended_cb),

                                         mgr, 0);

totem-pl-parser-2.22.3/plparse/totem-pl-parser.c:

        totem_pl_parser_table_signals[PLAYLIST_ENDED] =

                g_signal_new ("playlist-ended",

                              G_TYPE_FROM_CLASS (klass),

                              G_SIGNAL_RUN_LAST,

                              G_STRUCT_OFFSET (TotemPlParserClass, playlist_ended),

                              NULL, NULL,

                              g_cclosure_marshal_VOID__STRING,

                              G_TYPE_NONE, 1, G_TYPE_STRING);

"metadata" is not valid, and will crash when opening _any_ playlist.