[phodav: 6/14] spice: clear loop pointer on unref



commit 69d398c05d2d0e8bf3dceea44762dc32979d5782
Author: Jakub Janků <jjanku redhat com>
Date:   Sat May 11 15:02:04 2019 +0200

    spice: clear loop pointer on unref
    
    The pointer to loop must be set to NULL on unref.
    
    Quit signal handler can be called at any time,
    using g_main_loop_quit() on a freed loop could lead to segfault.
    
    Signed-off-by: Jakub Janků <jjanku redhat com>

 spice/spice-webdavd.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
---
diff --git a/spice/spice-webdavd.c b/spice/spice-webdavd.c
index 826e2d6..a6a4fb1 100644
--- a/spice/spice-webdavd.c
+++ b/spice/spice-webdavd.c
@@ -243,7 +243,8 @@ quit (int sig)
   if (sig == SIGINT || sig == SIGTERM)
       quit_service = TRUE;
 
-  g_main_loop_quit (loop);
+  if (loop)
+    g_main_loop_quit (loop);
 }
 
 #ifdef G_OS_UNIX
@@ -991,7 +992,7 @@ run_service (ServiceData *service_data)
 
   start_mux_read (mux_istream);
   g_main_loop_run (loop);
-  g_main_loop_unref (loop);
+  g_clear_pointer (&loop, g_main_loop_unref);
 
 #ifdef G_OS_WIN32
   g_cancellable_cancel (map_drive_data.cancel_map);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]