[Spice-devel] [spice-server 1/8] reds: Close sockets when failing to watch them
Uri Lublin
uril at redhat.com
Wed Mar 7 10:01:48 UTC 2018
On 03/06/2018 03:53 PM, Christophe Fergeau wrote:
> Currently if we fail to set up the watch waiting for accept() to be
> called on the socket, we still keep the network socket open even if we
> are not going to be able to use it. This commit makes sure it's closed a
> set to -1 when such a failure occurs.
> ---
> server/reds.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/server/reds.c b/server/reds.c
> index a31ed4e96..7867e8573 100644
> --- a/server/reds.c
> +++ b/server/reds.c
> @@ -2595,6 +2595,8 @@ static int reds_init_net(RedsState *reds)
> SPICE_WATCH_EVENT_READ,
> reds_accept, reds);
> if (reds->listen_watch == NULL) {
> + close(reds->listen_socket);
> + reds->listen_socket = -1;
> spice_warning("set fd handle failed");
> return -1;
> }
> @@ -2610,6 +2612,8 @@ static int reds_init_net(RedsState *reds)
> SPICE_WATCH_EVENT_READ,
> reds_accept_ssl_connection, reds);
> if (reds->secure_listen_watch == NULL) {
> + close(reds->secure_listen_socket);
> + reds->secure_listen_socket = -1;
Looks good.
Note that it still does not clean up everything.
For example it may be that listen_socket stays open.
Uri.
> spice_warning("set fd handle failed");
> return -1;
> }
> @@ -2621,6 +2625,7 @@ static int reds_init_net(RedsState *reds)
> SPICE_WATCH_EVENT_READ,
> reds_accept, reds);
> if (reds->listen_watch == NULL) {
> + reds->listen_socket = -1;
> spice_warning("set fd handle failed");
> return -1;
> }
>
More information about the Spice-devel
mailing list