diff options
author | Dan Carpenter <error27@gmail.com> | 2011-02-07 20:25:19 +0300 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2011-02-07 18:30:10 +0100 |
commit | 8121d91c02a1be4884821599472acf405efdc3de (patch) | |
tree | b256c95edfa535ab4d33dc8411a332334f2b5df4 | |
parent | ea18e137baf3e3e9212bfd7b071555fc712159b5 (diff) | |
download | op-kernel-dev-8121d91c02a1be4884821599472acf405efdc3de.zip op-kernel-dev-8121d91c02a1be4884821599472acf405efdc3de.tar.gz |
ALSA: USB: 6fire: signedness bug in usb6fire_pcm_prepare()
rt->rate is an unsigned char so it's never equal to -1. It's not a huge
problem because the invalid rate is caught inside the call to
usb6fire_pcm_set_rate() which returns -EINVAL. But if we fix the test
then it prints out the correct error message so that's good.
Signed-off-by: Dan Carpenter <error27@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r-- | sound/usb/6fire/pcm.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/sound/usb/6fire/pcm.c b/sound/usb/6fire/pcm.c index 705c88e..ba62c74 100644 --- a/sound/usb/6fire/pcm.c +++ b/sound/usb/6fire/pcm.c @@ -493,13 +493,12 @@ static int usb6fire_pcm_prepare(struct snd_pcm_substream *alsa_sub) sub->period_off = 0; if (rt->stream_state == STREAM_DISABLED) { - rt->rate = -1; for (i = 0; i < ARRAY_SIZE(rates); i++) if (alsa_rt->rate == rates[i]) { rt->rate = i; break; } - if (rt->rate == -1) { + if (i == ARRAY_SIZE(rates)) { mutex_unlock(&rt->stream_mutex); snd_printk("invalid rate %d in prepare.\n", alsa_rt->rate); |