[Spice-devel] [spice-server 06/17] sound: Don't dereference pointer before NULL check

Frediano Ziglio fziglio at redhat.com
Wed Jan 11 11:14:52 UTC 2017


> 
> Based on a patch from Frediano Ziglio <fziglio at redhat.com>
> 
> Signed-off-by: Christophe Fergeau <cfergeau at redhat.com>

Acked-by: Frediano Ziglio <fziglio at redhat.com>

Frediano

> ---
>  server/sound.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/server/sound.c b/server/sound.c
> index 7ebea90..1eab75b 100644
> --- a/server/sound.c
> +++ b/server/sound.c
> @@ -1125,11 +1125,11 @@ SPICE_GNUC_VISIBLE void
> spice_server_playback_start(SpicePlaybackInstance *sin)
>  SPICE_GNUC_VISIBLE void spice_server_playback_stop(SpicePlaybackInstance
>  *sin)
>  {
>      SndChannelClient *client = sin->st->channel.connection;
> -    PlaybackChannelClient *playback_client = SPICE_CONTAINEROF(client,
> PlaybackChannelClient, base);
>  
>      sin->st->channel.active = 0;
>      if (!client)
>          return;
> +    PlaybackChannelClient *playback_client = SPICE_CONTAINEROF(client,
> PlaybackChannelClient, base);
>      spice_assert(client->active);
>      reds_enable_mm_time(snd_channel_get_server(client));
>      client->active = FALSE;
> @@ -1383,11 +1383,11 @@ SPICE_GNUC_VISIBLE void
> spice_server_record_set_mute(SpiceRecordInstance *sin, u
>  static void snd_record_start(SndChannel *channel)
>  {
>      SndChannelClient *client = channel->connection;
> -    RecordChannelClient *record_client = SPICE_CONTAINEROF(client,
> RecordChannelClient, base);
>  
>      channel->active = 1;
>      if (!client)
>          return;
> +    RecordChannelClient *record_client = SPICE_CONTAINEROF(client,
> RecordChannelClient, base);
>      spice_assert(!client->active);
>      record_client->read_pos = record_client->write_pos = 0;   //todo:
>      improve by
>                                                                //stream
>                                                                generation
> @@ -1426,13 +1426,13 @@ SPICE_GNUC_VISIBLE uint32_t
> spice_server_record_get_samples(SpiceRecordInstance
>                                                              uint32_t
>                                                              *samples,
>                                                              uint32_t
>                                                              bufsize)
>  {
>      SndChannelClient *client = sin->st->channel.connection;
> -    RecordChannelClient *record_client = SPICE_CONTAINEROF(client,
> RecordChannelClient, base);
>      uint32_t read_pos;
>      uint32_t now;
>      uint32_t len;
>  
>      if (!client)
>          return 0;
> +    RecordChannelClient *record_client = SPICE_CONTAINEROF(client,
> RecordChannelClient, base);
>      spice_assert(client->active);
>  
>      if (record_client->write_pos < RECORD_SAMPLES_SIZE / 2) {



More information about the Spice-devel mailing list