gvfs/SOURCES/trash-Do-not-create-monitors-for-non-root-items.patch
2026-08-18 08:34:10 -04:00

58 lines
2.0 KiB
Diff

From 85a789c800ef2773af6eb8884fef746d67d3cafe Mon Sep 17 00:00:00 2001
From: Ondrej Holy <oholy@redhat.com>
Date: Fri, 20 Jan 2023 09:17:00 +0100
Subject: [PATCH] trash: Do not create monitors for non-root items
The `create_dir_monitor` and `create_file_monitor` methods never fail
currently. However, no events are emitted for non-root items. Let's
return the `G_IO_ERROR_NOT_SUPPORTED` error for non-root items instead.
---
daemon/gvfsbackendtrash.c | 22 ++++++++++++++++------
1 file changed, 16 insertions(+), 6 deletions(-)
diff --git a/daemon/gvfsbackendtrash.c b/daemon/gvfsbackendtrash.c
index d7ec4f77..76c9e006 100644
--- a/daemon/gvfsbackendtrash.c
+++ b/daemon/gvfsbackendtrash.c
@@ -839,10 +839,15 @@ trash_backend_create_dir_monitor (GVfsBackend *vfs_backend,
GVfsMonitor *monitor;
if (!is_root (filename))
- monitor = g_vfs_monitor_new (vfs_backend);
- else
- monitor = trash_backend_get_dir_monitor (backend, TRUE);
+ {
+ g_vfs_job_failed (G_VFS_JOB (job),
+ G_IO_ERROR,
+ G_IO_ERROR_NOT_SUPPORTED,
+ _("Operation not supported"));
+ return TRUE;
+ }
+ monitor = trash_backend_get_dir_monitor (backend, TRUE);
g_vfs_job_create_monitor_set_monitor (job, monitor);
g_vfs_job_succeeded (G_VFS_JOB (job));
g_object_unref (monitor);
@@ -860,10 +865,15 @@ trash_backend_create_file_monitor (GVfsBackend *vfs_backend,
GVfsMonitor *monitor;
if (!is_root (filename))
- monitor = g_vfs_monitor_new (vfs_backend);
- else
- monitor = trash_backend_get_file_monitor (backend, TRUE);
+ {
+ g_vfs_job_failed (G_VFS_JOB (job),
+ G_IO_ERROR,
+ G_IO_ERROR_NOT_SUPPORTED,
+ _("Operation not supported"));
+ return TRUE;
+ }
+ monitor = trash_backend_get_file_monitor (backend, TRUE);
g_vfs_job_create_monitor_set_monitor (job, monitor);
g_vfs_job_succeeded (G_VFS_JOB (job));
g_object_unref (monitor);
--
2.53.0