Skip to content
Snippets Groups Projects
Commit 2ddafce7 authored by Ding Hui's avatar Ding Hui Committed by Gerd Hoffmann
Browse files

vnc: fix resource leak when websocket channel error


When we connect to vnc by websocket channel, and disconnect
(maybe by some network exception) before handshake,
qemu will left CLOSE_WAIT socket and never close it

After 04d2529d ("ui: convert VNC server to use QIOChannelSocket")
and dd154c4d ("io: fix handling of EOF / error conditions in websock GSource"),
the vnc call qio_channel_add_watch only care about G_IO_IN,
but mising G_IO_HUP and G_IO_ERR.
When the websocket channel get EOF or error, it cannot callback,
because the caller ignore the event, that leads to resource leak

We need handle G_IO_HUP and G_IO_ERR event, then cleanup the channel

Fixes: 04d2529d ("ui: convert VNC server to use QIOChannelSocket")
Fixes: dd154c4d ("io: fix handling of EOF / error conditions in websock GSource")
Cc: qemu-stable@nongnu.org
Signed-off-by: default avatarDing Hui <dinghui@sangfor.com.cn>
Message-id: 20201029032241.11040-1-dinghui@sangfor.com.cn
Signed-off-by: default avatarGerd Hoffmann <kraxel@redhat.com>
parent 3d6e3234
No related branches found
No related tags found
No related merge requests found
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment