summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn (J5) Palmieri <johnp@redhat.com>2006-09-08 15:23:50 +0000
committerJohn (J5) Palmieri <johnp@redhat.com>2006-09-08 15:23:50 +0000
commitb4d571bba305f05810e77e7b1309524d3bf53f3f (patch)
tree71c7c4fe90690c897fa73b8c4eb6b72b63530422
parentb19511946fa6a3ae228e97a02ab6b6aeed9fffb9 (diff)
* dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
filters (Patch from Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
-rw-r--r--ChangeLog6
-rw-r--r--dbus/dbus-connection.c7
2 files changed, 13 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index adec6ca0..1ac41cdf 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2006-09-08 John (J5) Palmieri <johnp@redhat.com>
+
+ * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
+ filters (Patch from Kimmo Hämäläinen
+ <kimmo dot hamalainen at nokia dot com>)
+
2006-09-07 John (J5) Palmieri <johnp@redhat.com>
* dbus/dbus-connection-internal.h: Add prototype for
diff --git a/dbus/dbus-connection.c b/dbus/dbus-connection.c
index 8033c4a5..91f7770c 100644
--- a/dbus/dbus-connection.c
+++ b/dbus/dbus-connection.c
@@ -3718,6 +3718,13 @@ dbus_connection_dispatch (DBusConnection *connection)
DBusMessageFilter *filter = link->data;
DBusList *next = _dbus_list_get_next_link (&filter_list_copy, link);
+ if (filter->function == NULL)
+ {
+ _dbus_verbose (" filter was removed in a callback function\n");
+ link = next;
+ continue;
+ }
+
_dbus_verbose (" running filter on message %p\n", message);
result = (* filter->function) (connection, message, filter->user_data);