[gvfs] google: Fix crashes when deleting if the file isn't found
- From: Ondrej Holy <oholy src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gvfs] google: Fix crashes when deleting if the file isn't found
- Date: Wed, 24 Jul 2019 07:49:37 +0000 (UTC)
commit 63d97b19af2479fa2219ca87201f9e830b5f31f3
Author: Mayank Sharma <mayank8019 gmail com>
Date: Tue Jul 23 09:51:41 2019 +0530
google: Fix crashes when deleting if the file isn't found
Currently in delete operation, if the entry gets resolved but parent
resolution fails, the jump to `out` label (while handling error) will
cause the existing entry's ref_count to decrease by 1 (since `out`
label calls g_object_unref on entry).
We fix the issue by removing g_object_unref from `out` label and
suitably unreffing the entry.
daemon/gvfsbackendgoogle.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
---
diff --git a/daemon/gvfsbackendgoogle.c b/daemon/gvfsbackendgoogle.c
index 652b230f..dcbdc713 100644
--- a/daemon/gvfsbackendgoogle.c
+++ b/daemon/gvfsbackendgoogle.c
@@ -1392,6 +1392,7 @@ g_vfs_backend_google_delete (GVfsBackend *_self,
sanitize_error (&error);
g_vfs_job_failed_from_error (G_VFS_JOB (job), error);
g_error_free (error);
+ g_object_unref (entry);
goto out;
}
@@ -1403,9 +1404,9 @@ g_vfs_backend_google_delete (GVfsBackend *_self,
insert_entry (self, GDATA_ENTRY (new_entry));
g_hash_table_foreach (self->monitors, emit_delete_event, entry_path);
g_vfs_job_succeeded (G_VFS_JOB (job));
+ g_object_unref (entry);
out:
- g_object_unref (entry);
g_clear_object (&new_entry);
g_free (entry_path);
g_debug ("- delete\n");
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]