qemu/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 console-gl: add opengl rendering helper functions 2015-05-05 10:48:22 +02:00
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 ui/curses: Fix pageup/pagedown on -curses 2015-11-03 10:12:46 +01:00
curses.c ui: Clean up includes 2016-02-04 17:01:04 +00:00
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 ui: Clean up includes 2016-02-04 17:01:04 +00:00
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 qapi: Don't special-case simple union wrappers 2016-03-18 10:29:26 +01:00
input-legacy.c qapi: Don't special-case simple union wrappers 2016-03-18 10:29:26 +01:00
input-linux.c input-linux: refine mouse detection 2016-04-13 15:52:28 +02:00
input.c qapi: Don't special-case simple union wrappers 2016-03-18 10:29:26 +01:00
keymaps.c ui: Clean up includes 2016-02-04 17:01:04 +00:00
keymaps.h
Makefile.objs input: linux evdev support 2016-03-08 12:20:11 +01:00
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 ui: Clean up includes 2016-02-04 17:01:04 +00:00
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 util: move declarations out of qemu-common.h 2016-03-22 22:20:17 +01:00
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 qapi: rename input buttons 2016-03-01 08:19:07 +01:00
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 include/qemu/osdep.h: Don't include qapi/error.h 2016-03-22 22:20:15 +01:00
vnc-auth-sasl.h
vnc-auth-vencrypt.c include/qemu/osdep.h: Don't include qapi/error.h 2016-03-22 22:20:15 +01:00
vnc-auth-vencrypt.h
vnc-enc-hextile-template.h
vnc-enc-hextile.c ui: Clean up includes 2016-02-04 17:01:04 +00:00
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 ui: Clean up includes 2016-02-04 17:01:04 +00:00
vnc-enc-zrle-template.c ui: Clean up includes 2016-02-04 17:01:04 +00:00
vnc-enc-zrle.c ui: Clean up includes 2016-02-04 17:01:04 +00:00
vnc-enc-zrle.h
vnc-enc-zywrle-template.c ui: Clean up includes 2016-02-04 17:01:04 +00:00
vnc-enc-zywrle.h
vnc-jobs.c ui: Clean up includes 2016-02-04 17:01:04 +00:00
vnc-jobs.h
vnc-palette.c all: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
vnc-palette.h all: Clean up includes 2016-02-23 12:43:05 +00:00
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 ui: convert VNC server to use QIOChannelWebsock 2015-12-18 15:02:11 +00:00
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 ui: Clean up includes 2016-02-04 17:01:04 +00:00
x_keymap.h