[Spice-devel] [PATCH spice-gtk 00/15] remove channels from session on disconnect

Marc-André Lureau marcandre.lureau at redhat.com
Tue Nov 25 05:19:13 PST 2014


Hi,

This is the follow-up series on channel lifecycle changes, removing
channels from session on disconnection. The previous series revealed
some issues relatd to direct access to session fields. This new series
adds a lot more checks so that no session private field can be
accessed diretly anymore. This should avoid potential crashes, and
after careful review of SpiceSession accessors, the should be no
direct or shared pointer access left.

This prevents crashes as reported by Christophe during review, however
critical messages are still possible. So far, I couldn't reproduce
anymore, but we should be prepared to fix more now.

Marc-André Lureau (15):
  audio: do not access session private struct
  session: protect internal functions against NULL
  Add spice_session_is_migration_copy()
  smartcard: use spice_session_is_migration_copy()
  session: add and use internal accessors
  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

 doc/reference/spice-gtk-sections.txt |   1 +
 gtk/channel-display.c                |   5 +-
 gtk/channel-main.c                   |  13 +-
 gtk/channel-smartcard.c              |  20 +-
 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                  | 481 ++++++++++++++++++++++++++++-------
 gtk/spice-session.h                  |   1 +
 gtk/usb-device-manager.c             |  35 +--
 16 files changed, 464 insertions(+), 305 deletions(-)

-- 
2.1.0



More information about the Spice-devel mailing list