summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristophe Fergeau <cfergeau@redhat.com>2013-10-29 17:26:34 +0100
committerChristophe Fergeau <cfergeau@redhat.com>2013-11-04 15:17:34 +0100
commit1ad6f7e90eb68522e6be6feee1c7462b24af737d (patch)
tree983b892f1fdf4f8218a5b69c5d6a6a4c526e33dc
parent51cd4fb8e7ec0a589d321de5312160ee99523b5f (diff)
downloadlibsoup-1ad6f7e90eb68522e6be6feee1c7462b24af737d.tar.gz
socket: Don't leak GTasks
GTask needs to be unreffed after calling g_task_return_* when we don't use async methods which take ownership of it (as g_task_run_in_thread() does). https://bugzilla.gnome.org/show_bug.cgi?id=711085
-rw-r--r--libsoup/soup-socket.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/libsoup/soup-socket.c b/libsoup/soup-socket.c
index d4046ec2..c101fa52 100644
--- a/libsoup/soup-socket.c
+++ b/libsoup/soup-socket.c
@@ -734,6 +734,7 @@ async_connected (GObject *client, GAsyncResult *result, gpointer data)
g_task_return_boolean (task, TRUE);
else
g_task_return_error (task, error);
+ g_object_unref (task);
}
gboolean
@@ -1233,6 +1234,7 @@ handshake_async_ready (GObject *source, GAsyncResult *result, gpointer user_data
g_task_return_boolean (task, TRUE);
else
g_task_return_error (task, error);
+ g_object_unref (task);
}
void
@@ -1250,6 +1252,7 @@ soup_socket_handshake_async (SoupSocket *sock,
if (!soup_socket_setup_ssl (sock, ssl_host, cancellable, &error)) {
g_task_return_error (task, error);
+ g_object_unref (task);
return;
}