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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> 
> 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@xxxxxxxxxx>
> 
> Signed-off-by: Christophe Fergeau <cfergeau@xxxxxxxxxx>
> ---
>  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@xxxxxxxxxx>

Frediano
_______________________________________________
Spice-devel mailing list
Spice-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/spice-devel




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]