Hi, This is the updated series on channel lifecycle changes, removing channels from session on disconnection. The previous series revealed some issues related to direct access to session fields. This new series adds a lot more checks so that no session private fields can be accessed directly anymore. This should avoid potential crashes, and after careful review of SpiceSession accessors, there should be no direct or shared pointer access left. In last review, Christophe found that USB context was wrongly accessed after disconnection. You can find the fix in the last patch. This is a typical example of what could remain lying in the code, so more testing required! Marc-André Lureau (22): audio: add accessor to check if audio is enabled audio: move spice_audio_get() to session session: protect internal functions against invalid args Add spice_session_is_for_migration() smartcard: do not initialize manager for migration session smartcard: use spice_session_is_for_migration() session: rename migration_copy/for_migration session: set session for migration when connecting session: add and use internal accessors Rename display_channels_count/n_display_channels webdav: move initialization to session usb: move device manager initialization to session gtk: do not require glib session private fields session: move SpiceSessionPrivate out of headers session: remove channels on disconnect display: don't reschedule stream if disconnected from session channel: deprecate spice_channel_destroy() session: remove sticky disconnecting flag session: keep a reference on disconnect session: disconnect in idle cosmetic: return early if channel is not usb usb: keep USB context alive as long as channels exist doc/reference/spice-gtk-sections.txt | 1 + gtk/channel-display.c | 5 +- gtk/channel-main.c | 12 +- gtk/channel-smartcard.c | 19 +- gtk/channel-webdav.c | 34 +-- gtk/desktop-integration.c | 7 +- gtk/map-file | 1 + gtk/spice-audio.c | 50 +--- gtk/spice-channel.c | 15 +- gtk/spice-channel.h | 3 +- gtk/spice-glib-sym-file | 1 + gtk/spice-gtk-session.c | 4 +- gtk/spice-session-priv.h | 98 +------ gtk/spice-session.c | 488 ++++++++++++++++++++++++++++------- gtk/spice-session.h | 1 + gtk/usb-device-manager.c | 64 ++--- 16 files changed, 484 insertions(+), 319 deletions(-) -- 2.1.0 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel