mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-12-11 16:00:50 -07:00
The tcp_chr_free_connection & tcp_chr_disconnect methods both skip all of their cleanup work unless the 's->connected' flag is set. This flag is set when the incoming client connection is ready to use. Crucially this is *after* the TLS handshake has been completed. So if the TLS handshake fails and we try to cleanup the failed client, all the cleanup is skipped as 's->connected' is still false. The only important thing that should be skipped in this case is sending of the CHR_EVENT_CLOSED, because we never got as far as sending the corresponding CHR_EVENT_OPENED. Every other bit of cleanup can be robust against being called even when s->connected is false. Signed-off-by: Daniel P. Berrange <berrange@redhat.com> Message-Id: <20171005155057.7664-1-berrange@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> |
||
|---|---|---|
| .. | ||
| baum.c | ||
| char-console.c | ||
| char-fd.c | ||
| char-fe.c | ||
| char-file.c | ||
| char-io.c | ||
| char-mux.c | ||
| char-null.c | ||
| char-parallel.c | ||
| char-pipe.c | ||
| char-pty.c | ||
| char-ringbuf.c | ||
| char-serial.c | ||
| char-socket.c | ||
| char-stdio.c | ||
| char-udp.c | ||
| char-win-stdio.c | ||
| char-win.c | ||
| char.c | ||
| Makefile.objs | ||
| msmouse.c | ||
| spice.c | ||
| testdev.c | ||
| trace-events | ||
| wctablet.c | ||