Prevent a crash in some applications due to timers leaking after the

DVusPendingCall object was freed.

    * dbus-connection.c: Remove the timer for the pending call's timeout in
      case the reply has timed out in blocking code. This fixes bug 15684.
This commit is contained in:
Thiago Macieira 2008-05-17 10:09:20 +02:00
parent 12e838d766
commit cdca6dbce8

View file

@ -965,6 +965,13 @@ _dbus_connection_detach_pending_call_and_unlock (DBusConnection *connection,
_dbus_pending_call_ref_unlocked (pending);
_dbus_hash_table_remove_int (connection->pending_replies,
_dbus_pending_call_get_reply_serial_unlocked (pending));
if (_dbus_pending_call_is_timeout_added_unlocked (pending))
_dbus_connection_remove_timeout_unlocked (connection,
_dbus_pending_call_get_timeout_unlocked (pending));
_dbus_pending_call_set_timeout_added_unlocked (pending, FALSE);
_dbus_pending_call_unref_and_unlock (pending);
}