Hi Lucas, On Mon, Jun 25, 2012 at 4:26 PM, Lucas De Marchi <lucas.demarchi@xxxxxxxxxxxxxx> wrote: > > Probably... this is the stock libdbus from Archlinux. I also found > interest that all possible users of g_dbus_add_signal_watch() with a > bus name were passing a NULL, which is clearly wrong. That made me > think it was like this to workaround this bug. Ive changed in a few places but I guess nobody really care when g_dbus_add_signal_watch was introduced. > >> >> Anyway I couldn't reproduce by changing ofono with stock libdbus from >> FC 17, although I see the problem just by looking at the code, but >> there other places where this need to be checked as well and the code >> could be simplified: >> >> diff --git a/gdbus/watch.c b/gdbus/watch.c >> index 9a716b0..d749176 100644 >> --- a/gdbus/watch.c >> +++ b/gdbus/watch.c >> @@ -376,15 +376,14 @@ static gboolean >> filter_data_remove_callback(struct filter_data *data, >> >> connection = dbus_connection_ref(data->connection); >> listeners = g_slist_remove(listeners, data); >> - filter_data_free(data); >> >> /* Remove filter if there are no listeners left for the connection */ >> - data = filter_data_find(connection, NULL, NULL, NULL, NULL, NULL, >> - NULL); >> - if (data == NULL) >> + if (filter_data_find(connection, NULL, NULL, NULL, NULL, NULL, >> + NULL) == NULL) >> dbus_connection_remove_filter(connection, message_filter, >> NULL); >> >> + filter_data_free(data); >> dbus_connection_unref(connection); >> >> return TRUE; > > ahn... right. We already removed data from listeners list so we can > call dbus_connection_remove_filter() before filter_data_free(). Please just send the patch with this changes, you probably have look much more in details than I did. -- Luiz Augusto von Dentz -- To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html