[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