[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