qemu/ui
Gonglei (Arei) e3c1adf16e vnc: Fix qemu crashed when vnc client disconnect suddenly
Hi,

When I use RealVNC viewer client (http://www.realvnc.com/) to connect vnc server,
the client disconnect suddenly, and I click reconnect button immediately, then the Qemu crashed.

In the function vnc_worker_thread_loop, will call vnc_async_encoding_start
to set the local vs->output buffer by global queue's buffer. Then send rectangles to
the vnc client call function vnc_send_framebuffer_update. Finally, Under normal circumstances,
call vnc_async_encoding_end to set the global queue'buffer by the local vs->output conversely.

When the vnc client disconnect, the job->vs->csock will be set to -1. And the current prcoess
logic will goto disconnected partion without call function vnc_async_encoding_end.
But, the function vnc_send_framebuffer_update will call buffer_reserve, which
maybe call g_realloc reset the local vs's buffer, meaning the global queue's buffer is modified also.
If anyone use the original global queue's buffer memory will cause corruption and then crash qemu.

This patch assure the function vnc_async_encoding_end being called
even though the vnc client disconnect suddenly.

Signed-off-by: Gonglei <arei.gonglei@huawei.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2014-03-10 12:35:04 +01:00
..
cocoa.m input: mouse: switch cocoa ui to new core 2014-03-05 09:52:03 +01:00
console.c console: add QemuUIInfo 2014-03-05 09:52:04 +01:00
curses_keys.h janitor: add guards to headers 2012-12-19 08:31:31 +01:00
curses.c input: keyboard: switch curses ui to new core 2014-03-05 09:50:18 +01:00
cursor_hidden.xpm ui: move files to ui/ and include/ui/ 2012-12-19 08:31:30 +01:00
cursor_left_ptr.xpm ui: move files to ui/ and include/ui/ 2012-12-19 08:31:30 +01:00
cursor.c ui: move files to ui/ and include/ui/ 2012-12-19 08:31:30 +01:00
d3des.c
d3des.h janitor: add guards to headers 2012-12-19 08:31:31 +01:00
gtk.c input: mouse: switch gtk ui to new core 2014-03-05 09:52:02 +01:00
input-legacy.c input: remove index_from_keycode (no users) 2014-03-05 09:52:04 +01:00
input.c input: move do_mouse_set to new core 2014-03-05 09:52:04 +01:00
keymaps.c qemu-char: add support for U-prefixed symbols 2013-11-13 15:48:38 +04:00
keymaps.h
Makefile.objs ui/sdl2 : initial port to SDL 2.0 (v2.0) 2014-03-05 09:52:05 +01:00
qemu-pixman.c pixman: render vgafont glyphs into pixman images 2013-04-16 09:03:47 +02:00
qemu-x509.h ui: move files to ui/ and include/ui/ 2012-12-19 08:31:30 +01:00
sdl2-keymap.h ui/sdl2 : initial port to SDL 2.0 (v2.0) 2014-03-05 09:52:05 +01:00
sdl2.c ui/sdl2 : initial port to SDL 2.0 (v2.0) 2014-03-05 09:52:05 +01:00
sdl_keysym.h ui/sdl2 : initial port to SDL 2.0 (v2.0) 2014-03-05 09:52:05 +01:00
sdl_zoom_template.h sdl: Fix heap smash in sdl_zoom_rgb{16,32} for int > 32 bits 2013-01-15 18:25:30 -06:00
sdl_zoom.c sdl: Fix heap smash in sdl_zoom_rgb{16,32} for int > 32 bits 2013-01-15 18:25:30 -06:00
sdl_zoom.h
sdl.c ui/sdl2 : initial port to SDL 2.0 (v2.0) 2014-03-05 09:52:05 +01:00
spice-core.c spice: move spice_server_vm_{start,stop} calls into qemu_spice_display_*() 2013-12-16 10:12:20 +01:00
spice-display.c spice: move qemu_spice_display_*() from spice-graphics to spice-core 2013-12-16 10:12:20 +01:00
spice-input.c input: mouse: switch spice ui to new core 2014-03-05 09:52:03 +01:00
vgafont.h ui: move files to ui/ and include/ui/ 2012-12-19 08:31:30 +01:00
vnc_keysym.h qemu-char: add missing characters used in keymaps 2013-11-13 15:48:38 +04:00
vnc-auth-sasl.c Merge branch 'trivial-patches' of git://github.com/stefanha/qemu 2012-10-06 18:54:14 +02:00
vnc-auth-sasl.h aio / timers: Untangle include files 2013-08-22 19:10:27 +02:00
vnc-auth-vencrypt.c aio / timers: Untangle include files 2013-08-22 19:10:27 +02:00
vnc-auth-vencrypt.h
vnc-enc-hextile-template.h pixman/vnc: use pixman images in vnc. 2012-11-01 14:00:04 +01:00
vnc-enc-hextile.c pixman/vnc: remove dead code. 2012-11-01 14:00:05 +01:00
vnc-enc-tight.c vnc: Fix tight_detect_smooth_image() for lossless case 2014-03-10 12:35:04 +01:00
vnc-enc-tight.h
vnc-enc-zlib.c Use glib memory allocation and free functions 2011-08-20 23:01:08 -05:00
vnc-enc-zrle-template.c
vnc-enc-zrle.c pixman/vnc: use pixman images in vnc. 2012-11-01 14:00:04 +01:00
vnc-enc-zrle.h
vnc-enc-zywrle-template.c Fix spelling in comments, documentation and messages 2011-12-14 11:09:44 +00:00
vnc-enc-zywrle.h misc: Spelling and grammar fixes in comments 2013-10-26 13:06:45 +04:00
vnc-jobs.c vnc: Fix qemu crashed when vnc client disconnect suddenly 2014-03-10 12:35:04 +01:00
vnc-jobs.h vnc: add missing static 2012-11-01 19:49:45 +01:00
vnc-palette.c ui/vnc-palette.c: Include headers it needs 2012-12-06 09:17:05 +01:00
vnc-palette.h misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
vnc-tls.c TLS support for VNC Websockets 2013-05-03 12:04:57 -05:00
vnc-tls.h misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
vnc-ws.c aio / timers: Untangle include files 2013-08-22 19:10:27 +02:00
vnc-ws.h TLS support for VNC Websockets 2013-05-03 12:04:57 -05:00
vnc.c input: mouse: switch vnc ui to new core 2014-03-05 09:52:02 +01:00
vnc.h input: mouse: switch vnc ui to new core 2014-03-05 09:52:02 +01:00
x_keymap.c
x_keymap.h