Blame SOURCES/0005-vdagent-Remove-watch-event-on-vdagent_display_destro.patch

f0adba
From bcbbea34d93d07d33b767f808ff3adf628b1ea0f Mon Sep 17 00:00:00 2001
f0adba
From: Victor Toso <victortoso@redhat.com>
f0adba
Date: Fri, 13 Jan 2023 13:54:06 +0100
f0adba
Subject: [PATCH] vdagent: Remove watch event on vdagent_display_destroy()
f0adba
f0adba
To avoid main loop calling it when GIOChannel for x11 was already
f0adba
destroyed.
f0adba
f0adba
Related: https://bugzilla.redhat.com/show_bug.cgi?id=2145004
f0adba
Signed-off-by: Victor Toso <victortoso@redhat.com>
f0adba
---
f0adba
 src/vdagent/display.c | 6 ++++--
f0adba
 1 file changed, 4 insertions(+), 2 deletions(-)
f0adba
f0adba
diff --git a/src/vdagent/display.c b/src/vdagent/display.c
f0adba
index 790d9ad..602ab65 100644
f0adba
--- a/src/vdagent/display.c
f0adba
+++ b/src/vdagent/display.c
f0adba
@@ -60,6 +60,7 @@ struct VDAgentDisplay {
f0adba
     UdscsConnection *vdagentd;
f0adba
     int debug;
f0adba
     GIOChannel *x11_channel;
f0adba
+    guint io_watch_source_id;
f0adba
     VDAgentMutterDBus *mutter;
f0adba
 };
f0adba
 
f0adba
@@ -296,7 +297,8 @@ VDAgentDisplay* vdagent_display_create(UdscsConnection *vdagentd, int debug, int
f0adba
         return NULL;
f0adba
     }
f0adba
 
f0adba
-    g_io_add_watch(display->x11_channel, G_IO_IN, x11_io_channel_cb, display);
f0adba
+    display->io_watch_source_id =
f0adba
+        g_io_add_watch(display->x11_channel, G_IO_IN, x11_io_channel_cb, display);
f0adba
 
f0adba
 
f0adba
     /* Since we are started at the same time as the wm,
f0adba
@@ -323,7 +325,7 @@ void vdagent_display_destroy(VDAgentDisplay *display, int vdagentd_disconnected)
f0adba
         return;
f0adba
     }
f0adba
 
f0adba
-
f0adba
+    g_source_remove(display->io_watch_source_id);
f0adba
     g_clear_pointer(&display->x11_channel, g_io_channel_unref);
f0adba
     vdagent_x11_destroy(display->x11, vdagentd_disconnected);
f0adba
 
f0adba
-- 
f0adba
2.39.0
f0adba