[Spice-devel] [PATCHv2 00/22] remove channels from session on disconnect
Marc-André Lureau
marcandre.lureau at redhat.com
Wed Nov 26 09:55:51 PST 2014
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
More information about the Spice-devel
mailing list