[alsa-devel] [patch] ALSA: compress_core: fix open flags test in snd_compr_open()

Takashi Iwai tiwai at suse.de
Tue Sep 11 14:28:01 CEST 2012


At Tue, 11 Sep 2012 14:12:43 +0300,
Dan Carpenter wrote:
> 
> O_RDONLY is zero so the original test (f->f_flags & O_RDONLY) is always
> false and it will never do compress capture.  The test for O_WRONLY is
> also slightly off.  The original test would consider "->flags =
> (O_WRONLY | O_RDWR)" as write only instead of rejecting it as invalid.
> 
> I've also removed the pr_err() because that could flood dmesg.
> 
> Signed-off-by: Dan Carpenter <dan.carpenter at oracle.com>

Applied now.  Thanks.


Takashi

> 
> diff --git a/sound/core/compress_offload.c b/sound/core/compress_offload.c
> index ec2118d..eb60cb8 100644
> --- a/sound/core/compress_offload.c
> +++ b/sound/core/compress_offload.c
> @@ -80,14 +80,12 @@ static int snd_compr_open(struct inode *inode, struct file *f)
>  	int maj = imajor(inode);
>  	int ret;
>  
> -	if (f->f_flags & O_WRONLY)
> +	if ((f->f_flags & O_ACCMODE) == O_WRONLY)
>  		dirn = SND_COMPRESS_PLAYBACK;
> -	else if (f->f_flags & O_RDONLY)
> +	else if ((f->f_flags & O_ACCMODE) == O_RDONLY)
>  		dirn = SND_COMPRESS_CAPTURE;
> -	else {
> -		pr_err("invalid direction\n");
> +	else
>  		return -EINVAL;
> -	}
>  
>  	if (maj == snd_major)
>  		compr = snd_lookup_minor_data(iminor(inode),
> 


More information about the Alsa-devel mailing list