[alsa-devel] [RFC][PATCH] ALSA: pcm_native.c initialize drec and num_drecs before it get used

Takashi Iwai tiwai at suse.de
Mon Sep 14 11:36:19 CEST 2009


At Sat, 12 Sep 2009 23:47:45 +0530,
Jaswinder Singh Rajput wrote:
> 
> [This is untested]
> 
> drec and num_drecs is used uninitialized for nonblock(goto lock)
> 
> This also fixed following compilation warnings :
> 
>   CC [M]  sound/core/pcm_native.o
> sound/core/pcm_native.c: In function ‘snd_pcm_drain’:
> sound/core/pcm_native.c:1413: warning: ‘drec’ may be used uninitialized in this function
> sound/core/pcm_native.c:1411: warning: ‘num_drecs’ may be used uninitialized in this function

This is false-positive.
I'm going to give another try to shut gcc out later.


thanks,

Takashi

> 
> Signed-off-by: Jaswinder Singh Rajput <jaswinderrajput at gmail.com>
> ---
>  sound/core/pcm_native.c |    7 ++++---
>  1 files changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/sound/core/pcm_native.c b/sound/core/pcm_native.c
> index 59e5fbe..8284dc1 100644
> --- a/sound/core/pcm_native.c
> +++ b/sound/core/pcm_native.c
> @@ -1433,6 +1433,9 @@ static int snd_pcm_drain(struct snd_pcm_substream *substream,
>  	} else if (substream->f_flags & O_NONBLOCK)
>  		nonblock = 1;
>  
> +	drec = &drec_tmp;
> +	num_drecs = 0;
> +
>  	if (nonblock)
>  		goto lock; /* no need to allocate waitqueues */
>  
> @@ -1445,11 +1448,9 @@ static int snd_pcm_drain(struct snd_pcm_substream *substream,
>  			snd_power_unlock(card);
>  			return -ENOMEM;
>  		}
> -	} else
> -		drec = &drec_tmp;
> +	}
>  
>  	/* count only playback streams */
> -	num_drecs = 0;
>  	snd_pcm_group_for_each_entry(s, substream) {
>  		runtime = s->runtime;
>  		if (s->stream == SNDRV_PCM_STREAM_PLAYBACK) {
> -- 
> 1.6.4.2
> 
> 


More information about the Alsa-devel mailing list