diff --git a/gio/gunixmount.c b/gio/gunixmount.c index a42614f73..2ec8e5cbf 100644 --- a/gio/gunixmount.c +++ b/gio/gunixmount.c @@ -283,7 +283,10 @@ eject_unmount_do_cb (gpointer user_data) argv = g_task_get_task_data (task); if (g_task_return_error_if_cancelled (task)) - return G_SOURCE_REMOVE; + { + g_object_unref (task); + return G_SOURCE_REMOVE; + } subprocess = g_subprocess_newv (argv, G_SUBPROCESS_FLAGS_STDOUT_SILENCE | G_SUBPROCESS_FLAGS_STDERR_PIPE, &error); g_assert_no_error (error); diff --git a/gio/gunixvolume.c b/gio/gunixvolume.c index 1c125054e..981f703b8 100644 --- a/gio/gunixvolume.c +++ b/gio/gunixvolume.c @@ -309,7 +309,10 @@ eject_mount_do (GVolume *volume, task = g_task_new (volume, cancellable, callback, user_data); if (g_task_return_error_if_cancelled (task)) - return; + { + g_object_unref (task); + return; + } subprocess = g_subprocess_newv (argv, G_SUBPROCESS_FLAGS_STDOUT_SILENCE | G_SUBPROCESS_FLAGS_STDERR_PIPE, &error); g_assert_no_error (error);