Avoid the following critical when a channel is disconnected with a pending stream (the streams are cleared on channel reset, after coroutine exit) (process:17188): GSpice-CRITICAL **: spice_session_get_mm_time: assertion 'session != NULL' failed #0 0x00007ffff71c24e5 in spice_session_get_mm_time (session=0x0) at spice-session.c:1999 #1 0x00007ffff71d438c in display_stream_schedule (st=0xa33040) at channel-display.c:1014 #2 0x00007ffff71d4a09 in display_stream_render (st=0xa33040, st@entry=<error reading variable: value has been optimized out>) at channel-display.c:1165 #3 0x0000003e1944a553 in g_timeout_dispatch (source=0xad64e0, callback=<optimized out>, user_data=<optimized out>) at gmain.c:4520 #4 0x0000003e19449aeb in g_main_context_dispatch (context=0x6a32b0) at gmain.c:3111 #5 0x0000003e19449aeb in g_main_context_dispatch (context=context@entry=0x6a32b0) at gmain.c:3710 #6 0x0000003e19449e88 in g_main_context_iterate (context=0x6a32b0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3781 #7 0x0000003e1944a1b2 in g_main_loop_run (loop=0x97e200) at gmain.c:3975 #8 0x0000003e1c9ebb35 in gtk_main () at gtkmain.c:1207 #9 0x0000000000430185 in main (argc=1, argv=0x7fffffffdcb8) at virt-viewer-main.c:119 --- gtk/channel-display.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gtk/channel-display.c b/gtk/channel-display.c index 940a5a7..17e2f6e 100644 --- a/gtk/channel-display.c +++ b/gtk/channel-display.c @@ -1003,15 +1003,16 @@ static void display_handle_stream_create(SpiceChannel *channel, SpiceMsgIn *in) /* coroutine or main context */ static gboolean display_stream_schedule(display_stream *st) { + SpiceSession *session = spice_channel_get_session(st->channel); guint32 time, d; SpiceStreamDataHeader *op; SpiceMsgIn *in; SPICE_DEBUG("%s", __FUNCTION__); - if (st->timeout) + if (st->timeout || !session) return TRUE; - time = spice_session_get_mm_time(spice_channel_get_session(st->channel)); + time = spice_session_get_mm_time(session); in = g_queue_peek_head(st->msgq); if (in == NULL) { -- 2.1.0 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel