[Spice-devel] [spice-server v3 01/10] sound: Rework spice_server_playback_get_buffer() error handling

Frediano Ziglio fziglio at redhat.com
Thu Jan 26 12:34:40 UTC 2017


> 
> The main goal of this commit is to avoid to dereference 'client' before
> it's checked for NULL. This meant splitting one error condition in 2
> separate ones.
> 
> This also sets default values for the 'frame' and 'num-samples'
> out parameters so that we just have to return on error conditions.
> 
> Based on a patch from Frediano Ziglio <fziglio at redhat.com>
> 
> Signed-off-by: Christophe Fergeau <cfergeau at redhat.com>
> ---
>  server/sound.c | 11 +++++++----
>  1 file changed, 7 insertions(+), 4 deletions(-)
> 
> diff --git a/server/sound.c b/server/sound.c
> index bacd340..2165644 100644
> --- a/server/sound.c
> +++ b/server/sound.c
> @@ -1166,11 +1166,14 @@ SPICE_GNUC_VISIBLE void
> spice_server_playback_get_buffer(SpicePlaybackInstance *
>                                                           uint32_t **frame,
>                                                           uint32_t
>                                                           *num_samples)
>  {
>      SndChannelClient *client = sin->st->channel.connection;
> -    PlaybackChannelClient *playback_client = SPICE_CONTAINEROF(client,
> PlaybackChannelClient, base);
>  
> -    if (!client || !playback_client->free_frames) {
> -        *frame = NULL;
> -        *num_samples = 0;
> +    *frame = NULL;
> +    *num_samples = 0;
> +    if (!client) {
> +        return;
> +    }
> +    PlaybackChannelClient *playback_client = SPICE_CONTAINEROF(client,
> PlaybackChannelClient, base);
> +    if (!playback_client->free_frames) {
>          return;
>      }
>      spice_assert(client->active);

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

Frediano


More information about the Spice-devel mailing list