mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-03-29 11:00:02 +01:00
GSocketClient: plug two leaks
g_socket_client_connect_async() was always leaking its GCancellable, and would also leak any GSocket that eventually failed to connect after returning G_IO_ERROR_PENDING.
This commit is contained in:
parent
16bafb4799
commit
b76b24f1b3
@ -751,6 +751,8 @@ g_socket_client_async_connect_complete (GSocketClientAsyncConnectData *data)
|
|||||||
g_simple_async_result_complete (data->result);
|
g_simple_async_result_complete (data->result);
|
||||||
g_object_unref (data->result);
|
g_object_unref (data->result);
|
||||||
g_object_unref (data->enumerator);
|
g_object_unref (data->enumerator);
|
||||||
|
if (data->cancellable)
|
||||||
|
g_object_unref (data->cancellable);
|
||||||
g_slice_free (GSocketClientAsyncConnectData, data);
|
g_slice_free (GSocketClientAsyncConnectData, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -790,6 +792,8 @@ g_socket_client_socket_callback (GSocket *socket,
|
|||||||
if (!g_socket_check_connect_result (data->current_socket, &error))
|
if (!g_socket_check_connect_result (data->current_socket, &error))
|
||||||
{
|
{
|
||||||
set_last_error (data, error);
|
set_last_error (data, error);
|
||||||
|
g_object_unref (data->current_socket);
|
||||||
|
data->current_socket = NULL;
|
||||||
|
|
||||||
/* try next one */
|
/* try next one */
|
||||||
g_socket_address_enumerator_next_async (data->enumerator,
|
g_socket_address_enumerator_next_async (data->enumerator,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user