No pending call in dbus_g_proxy_end_call_internal
Submitted by Göran Jönsson
Assigned to D-Bus Maintainers
Description
Created attachment 118531 dbus-glib patch
In dbus_g_proxy_end_call_internal(), it can happen that no pending call is registered. Then we shouldn't continue with dbus_pending_call_block() (which will fail on an assert).
This, that no call is registered, can happen if dbus_g_proxy_begin_call_internal() detects a closed connection during manager_begin_bus_call().
Minimize usage of lock LOCK_MANAGER(priv->manager) in func got_name_owner_cb.
Protect that priv->manager is not set to null by dbus_g_proxy_dispose when it's in use in got_name_owner_cb.
Increase refcount on proxy when calling manager_begin_bus_call and decrase refcount as manager_begin_bus_call destroy call.
Attachment 118531, "dbus-glib patch":
0001-dbus-gproxy-handle-end-of-async-DBus-call-when-begin.patch