qemu-e2k/ui
Daniel P. Berrange ea69744988 ui: avoid crash if vnc client disconnects with writes pending
The vnc_client_read() function is called from the vnc_client_io()
event handler callback when there is incoming data to process.
If it detects that the client has disconnected, then it will
trigger cleanup and free'ing of the VncState client struct at
a safe time.

Unfortunately, the vnc_client_io() event handler will also call
vnc_client_write() to handle any outgoing data writes. So if
vnc_client_io() was invoked with both G_IO_IN and G_IO_OUT
events set, and the client disconnects, we may try to write to
a client which has just been freed.

https://bugs.launchpad.net/qemu/+bug/1594861

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Message-id: 1467042529-3372-1-git-send-email-berrange@redhat.com
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2016-07-12 08:34:13 +02:00
..
shader
cocoa.m Fix some typos found by codespell 2016-05-18 15:04:27 +03:00
console-gl.c ui/console-gl: Add support for big endian display surfaces 2016-06-10 11:13:59 +02:00
console.c virgl: pass whole GL scanout dimensions 2016-07-06 10:32:14 +02:00
curses_keys.h
curses.c
cursor_hidden.xpm
cursor_left_ptr.xpm
cursor.c coccinelle: Remove unnecessary variables for function return value 2016-06-20 16:38:13 +02:00
egl-context.c
egl-helpers.c ui: egl: Replace fprintf with error_report 2016-06-03 08:23:26 +02:00
gtk-egl.c virgl: pass whole GL scanout dimensions 2016-07-06 10:32:14 +02:00
gtk-gl-area.c gtk: fix build 2016-07-11 10:40:29 +01:00
gtk.c gtk: fix vte version check 2016-06-10 11:13:15 +02:00
input-keymap.c
input-legacy.c
input-linux.c input-linux: refine mouse detection 2016-04-13 15:52:28 +02:00
input.c
keymaps.c
keymaps.h
Makefile.objs
qemu-pixman.c coccinelle: Remove unnecessary variables for function return value 2016-06-20 16:38:13 +02:00
qemu-x509.h
sdl2-2d.c SDL2: add bgrx pixel format 2016-06-03 08:23:26 +02:00
sdl2-gl.c virgl: pass whole GL scanout dimensions 2016-07-06 10:32:14 +02:00
sdl2-input.c
sdl2-keymap.h
sdl2.c sdl2: skip init without outputs 2016-06-03 08:23:26 +02:00
sdl_keysym.h
sdl_zoom_template.h
sdl_zoom.c all: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
sdl_zoom.h
sdl.c
shader.c Changed malloc to g_malloc, free to g_free in ui/shader.c 2016-05-12 16:41:46 +02:00
spice-core.c ui: spice: Exit if gl=on EGL init fails 2016-06-03 08:23:26 +02:00
spice-display.c virgl: pass whole GL scanout dimensions 2016-07-06 10:32:14 +02:00
spice-input.c
trace-events trace: split out trace events for ui/ directory 2016-06-20 17:22:17 +01:00
vgafont.h
vnc_keysym.h
vnc-auth-sasl.c
vnc-auth-sasl.h
vnc-auth-vencrypt.c
vnc-auth-vencrypt.h
vnc-enc-hextile-template.h
vnc-enc-hextile.c
vnc-enc-tight.c vnc-enc-tight: use thread local storage for palette 2016-07-12 08:34:13 +02:00
vnc-enc-tight.h
vnc-enc-zlib.c
vnc-enc-zrle-template.c
vnc-enc-zrle.c
vnc-enc-zrle.h
vnc-enc-zywrle-template.c
vnc-enc-zywrle.h
vnc-jobs.c
vnc-jobs.h
vnc-palette.c all: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
vnc-palette.h
vnc-ws.c qemu-common: stop including qemu/bswap.h from qemu-common.h 2016-05-19 16:42:28 +02:00
vnc-ws.h
vnc.c ui: avoid crash if vnc client disconnects with writes pending 2016-07-12 08:34:13 +02:00
vnc.h vnc: add configurable keyboard delay 2016-06-03 08:23:26 +02:00
x_keymap.c
x_keymap.h