[Spice-devel] [PATCH spice-server 2/2] server: handle red_channel_client_create returning NULL

Alon Levy alevy at redhat.com
Sun May 20 04:46:50 PDT 2012


On Sun, May 20, 2012 at 01:31:38PM +0300, Yonit Halperin wrote:

Looks good, ACK.

> ---
>  server/inputs_channel.c    |    3 +++
>  server/main_channel.c      |    2 +-
>  server/red_tunnel_worker.c |    4 +++-
>  server/red_worker.c        |    3 +++
>  server/smartcard.c         |    3 +++
>  server/snd_worker.c        |    3 +++
>  6 files changed, 16 insertions(+), 2 deletions(-)
> 
> diff --git a/server/inputs_channel.c b/server/inputs_channel.c
> index ad247f4..e14e995 100644
> --- a/server/inputs_channel.c
> +++ b/server/inputs_channel.c
> @@ -502,6 +502,9 @@ static void inputs_connect(RedChannel *channel, RedClient *client,
>                                                            stream,
>                                                            num_common_caps, common_caps,
>                                                            num_caps, caps);
> +    if (!icc) {
> +        return;
> +    }
>      icc->motion_count = 0;
>      inputs_pipe_add_init(&icc->base);
>  }
> diff --git a/server/main_channel.c b/server/main_channel.c
> index 713f121..ace24ff 100644
> --- a/server/main_channel.c
> +++ b/server/main_channel.c
> @@ -998,7 +998,7 @@ static MainChannelClient *main_channel_client_create(MainChannel *main_chan, Red
>                               red_channel_client_create(sizeof(MainChannelClient), &main_chan->base,
>                                                         client, stream, num_common_caps,
>                                                         common_caps, num_caps, caps);
> -
> +    spice_assert(mcc != NULL);
>      mcc->connection_id = connection_id;
>      mcc->bitrate_per_sec = ~0;
>  #ifdef RED_STATISTICS
> diff --git a/server/red_tunnel_worker.c b/server/red_tunnel_worker.c
> index 384c36d..12f3106 100644
> --- a/server/red_tunnel_worker.c
> +++ b/server/red_tunnel_worker.c
> @@ -3452,7 +3452,9 @@ static void handle_tunnel_channel_link(RedChannel *channel, RedClient *client,
>      tcc = (TunnelChannelClient*)red_channel_client_create(sizeof(TunnelChannelClient),
>                                                            channel, client, stream,
>                                                            0, NULL, 0, NULL);
> -
> +    if (!tcc) {
> +        return;
> +    }
>      tcc->worker = worker;
>      tcc->worker->channel_client = tcc;
>      net_slirp_set_net_interface(&worker->tunnel_interface.base);
> diff --git a/server/red_worker.c b/server/red_worker.c
> index dd00bff..3616d0f 100644
> --- a/server/red_worker.c
> +++ b/server/red_worker.c
> @@ -9769,6 +9769,9 @@ static CommonChannelClient *common_channel_client_create(int size,
>      RedChannelClient *rcc =
>          red_channel_client_create(size, &common->base, client, stream,
>                                    num_common_caps, common_caps, num_caps, caps);
> +    if (!rcc) {
> +        return NULL;
> +    }
>      CommonChannelClient *common_cc = (CommonChannelClient*)rcc;
>      common_cc->worker = common->worker;
>      common_cc->id = common->worker->id;
> diff --git a/server/smartcard.c b/server/smartcard.c
> index eb2823a..8ded142 100644
> --- a/server/smartcard.c
> +++ b/server/smartcard.c
> @@ -500,6 +500,9 @@ static void smartcard_connect(RedChannel *channel, RedClient *client,
>      rcc = red_channel_client_create(sizeof(RedChannelClient), channel, client, stream,
>                                      num_common_caps, common_caps,
>                                      num_caps, caps);
> +    if (!rcc) {
> +        return;
> +    }
>      red_channel_client_ack_zero_messages_window(rcc);
>  }
>  
> diff --git a/server/snd_worker.c b/server/snd_worker.c
> index caffe67..3599c6f 100644
> --- a/server/snd_worker.c
> +++ b/server/snd_worker.c
> @@ -975,6 +975,9 @@ static SndChannel *__new_channel(SndWorker *worker, int size, uint32_t channel_i
>                                                                client,
>                                                                num_common_caps, common_caps,
>                                                                num_caps, caps);
> +    if (!channel->channel_client) {
> +        goto error2;
> +    }
>      return channel;
>  
>  error2:
> -- 
> 1.7.7.6
> 
> _______________________________________________
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/spice-devel


More information about the Spice-devel mailing list