[PATCH spice-gtk] channel-usbredir: Do not stop event listening if SpiceSession does not exist

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

 



Avoids Segfault when closing the connection just after the usb device redirection.
---
 gtk/channel-usbredir.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/gtk/channel-usbredir.c b/gtk/channel-usbredir.c
index b1a91fb..d974434 100644
--- a/gtk/channel-usbredir.c
+++ b/gtk/channel-usbredir.c
@@ -419,9 +419,12 @@ void spice_usbredir_channel_disconnect_device(SpiceUsbredirChannel *channel)
          * usbredirhost_set_device NULL will interrupt the
          * libusb_handle_events call in the thread.
          */
-        spice_usb_device_manager_stop_event_listening(
-            spice_usb_device_manager_get(
-                spice_channel_get_session(SPICE_CHANNEL(channel)), NULL));
+        {
+            SpiceSession *session = spice_channel_get_session(SPICE_CHANNEL(channel));
+            if (session != NULL)
+                spice_usb_device_manager_stop_event_listening(
+                    spice_usb_device_manager_get(session, NULL));
+        }
         /* This also closes the libusb handle we passed from open_device */
         usbredirhost_set_device(priv->host, NULL);
         libusb_unref_device(priv->device);
-- 
2.3.2

_______________________________________________
Spice-devel mailing list
Spice-devel@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/spice-devel





[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]