[Spice-devel] [spice-server v3 01/10] sound: Rework spice_server_playback_get_buffer() error handling
Christophe Fergeau
cfergeau at redhat.com
Thu Jan 26 11:13:12 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);
--
2.9.3
More information about the Spice-devel
mailing list