/* gcc dbus-test.c -o dbus-test `pkg-config --cflags --libs dbus-1` */ #include static DBusHandlerResult foo_func (DBusConnection *connection, DBusMessage *message, void *data) { return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; } int main (void) { DBusError error; DBusConnection *connection; dbus_error_init (&error); connection = dbus_bus_get (DBUS_BUS_SYSTEM, &error); dbus_connection_add_filter (connection, foo_func, NULL, NULL); /* The following remove is incorrect and triggers a bug */ dbus_connection_remove_filter (connection, foo_func, "bogus"); dbus_connection_remove_filter (connection, foo_func, NULL); return 0; }