summaryrefslogtreecommitdiff
path: root/shell
diff options
context:
space:
mode:
authorBarnabás Pőcze <pobrn@protonmail.com>2022-10-19 19:42:27 +0200
committerGeorges Basile Stavracas Neto <georges.stavracas@gmail.com>2022-10-19 19:27:56 +0000
commitc4d883ebdb707e9ac453e147829f0cec4bf949fd (patch)
tree52041d6667ac03bde377e8456c6b3e30bcbbd025 /shell
parent61d8c33717a4b4ba802861401a6c03d1a7254580 (diff)
object-cache: Avoid use after free of task error
The error should not be touched after passing it to `g_task_return_error()` as noted by its documentation: Note that since the task takes ownership of @error, and since the task may be completed before returning from g_task_return_error(), you cannot assume that @error is still valid after calling this. However, previously, the code did try to free error since the `local_error` was defined with `g_autoptr(GError)`. (cherry picked from commit f00fd653cb7b8bc33cc84615b1c75ff878c847b0)
Diffstat (limited to 'shell')
-rw-r--r--shell/cc-object-storage.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/shell/cc-object-storage.c b/shell/cc-object-storage.c
index f52ba5960..f9a08f3ab 100644
--- a/shell/cc-object-storage.c
+++ b/shell/cc-object-storage.c
@@ -91,7 +91,7 @@ create_dbus_proxy_in_thread_cb (GTask *task,
if (local_error)
{
- g_task_return_error (task, local_error);
+ g_task_return_error (task, g_steal_pointer (&local_error));
return;
}