summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Carpenter <error27@gmail.com>2011-02-07 20:25:19 +0300
committerTakashi Iwai <tiwai@suse.de>2011-02-07 18:30:10 +0100
commit8121d91c02a1be4884821599472acf405efdc3de (patch)
treeb256c95edfa535ab4d33dc8411a332334f2b5df4
parentea18e137baf3e3e9212bfd7b071555fc712159b5 (diff)
downloadop-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.c3
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);
OpenPOWER on IntegriCloud