mirror of
https://gitlab.freedesktop.org/dbus/dbus.git
synced 2026-05-09 04:58:02 +02:00
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:
parent
12e838d766
commit
cdca6dbce8
1 changed files with 7 additions and 0 deletions
|
|
@ -965,6 +965,13 @@ _dbus_connection_detach_pending_call_and_unlock (DBusConnection *connection,
|
||||||
_dbus_pending_call_ref_unlocked (pending);
|
_dbus_pending_call_ref_unlocked (pending);
|
||||||
_dbus_hash_table_remove_int (connection->pending_replies,
|
_dbus_hash_table_remove_int (connection->pending_replies,
|
||||||
_dbus_pending_call_get_reply_serial_unlocked (pending));
|
_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);
|
_dbus_pending_call_unref_and_unlock (pending);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue