summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/spice-file-transfer-task.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/spice-file-transfer-task.c b/src/spice-file-transfer-task.c
index dffc454..49b97b3 100644
--- a/src/spice-file-transfer-task.c
+++ b/src/spice-file-transfer-task.c
@@ -116,6 +116,8 @@ static void spice_file_transfer_task_query_info_cb(GObject *obj,
info = g_file_query_info_finish(G_FILE(obj), res, &error);
if (self->error) {
+ g_clear_object(&info);
+ g_clear_error(&error);
/* Return error previously reported */
g_task_return_error(task, self->error);
g_object_unref(task);
@@ -152,6 +154,7 @@ static void spice_file_transfer_task_read_file_cb(GObject *obj,
self->file_stream = g_file_read_finish(G_FILE(obj), res, &error);
if (self->error) {
+ g_clear_error(&error);
/* Return error previously reported */
self->pending = FALSE;
g_task_return_error(task, self->error);
@@ -190,6 +193,7 @@ static void spice_file_transfer_task_read_stream_cb(GObject *source_object,
nbytes = g_input_stream_read_finish(G_INPUT_STREAM(self->file_stream), res, &error);
if (self->error) {
+ g_clear_error(&error);
/* On any pending error on SpiceFileTransferTask */
g_task_return_error(task, self->error);
g_object_unref(task);