vdagent: Reset properly state of pending large messages upon disconnection

If the client closes the connection while having pending large messages
(split into multiple chunks) the state is not correctly reset causing
next client messages to be not correctly handled.

This can occur for instance if the client is closed (or killed) while
transferring a large file.

This fixes https://bugzilla.redhat.com/show_bug.cgi?id=1548419.

Signed-off-by: Frediano Ziglio <freddy77@gmail.com>
Acked-by: Victor Toso <victortoso@redhat.com>
This commit is contained in:
Frediano Ziglio 2020-05-15 14:19:55 +01:00
parent 0fe97cc05a
commit fa2e3371c8

View File

@ -1348,6 +1348,7 @@ void VDAgent::dispatch_message(VDAgentMessage* msg, uint32_t port)
}
case VD_AGENT_CLIENT_DISCONNECTED:
vd_printf("Client disconnected, resetting agent state");
cleanup_in_msg();
set_control_event(CONTROL_RESET);
break;
case VD_AGENT_MAX_CLIPBOARD: