[Spice-devel] [spice-server v2 03/10] sound: Add sanity checks in snd_{playback, record}_send

Frediano Ziglio fziglio at redhat.com
Tue Jan 24 13:45:35 UTC 2017


> 
> Filter out commands which should not happen. Should it be a
> g_warn_if_fail() or such instead?
> 
> Based on a patch from Frediano Ziglio <fziglio at redhat.com>
> 
> Signed-off-by: Christophe Fergeau <cfergeau at redhat.com>
> ---
>  server/sound.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/server/sound.c b/server/sound.c
> index 1f88149..a53ebcd 100644
> --- a/server/sound.c
> +++ b/server/sound.c
> @@ -851,6 +851,9 @@ static void snd_playback_send(void* data)
>          return;
>      }
>  
> +    client->command &= SND_PLAYBACK_MODE_MASK|SND_PLAYBACK_PCM_MASK|
> +                       SND_CTRL_MASK|SND_VOLUME_MUTE_MASK|
> +                       SND_MIGRATE_MASK|SND_PLAYBACK_LATENCY_MASK;
>      while (client->command) {
>          if (client->command & SND_PLAYBACK_MODE_MASK) {
>              if (!playback_send_mode(playback_client)) {

Maybe all this can be avoided having at the end code like

for (;;) {
   // handle this flags
   // handle this other
   // other...

   // all flags processes
   client->command = 0;
   return;
}
snd_send(client);

> @@ -910,6 +913,7 @@ static void snd_record_send(void* data)
>          return;
>      }
>  
> +    client->command &= SND_CTRL_MASK|SND_VOLUME_MUTE_MASK|SND_MIGRATE_MASK;
>      while (client->command) {
>          if (client->command & SND_CTRL_MASK) {
>              if (!snd_record_send_ctl(record_client)) {

Frediano


More information about the Spice-devel mailing list