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>
This commit is contained in:
parent
ea18e137ba
commit
8121d91c02
|
@ -493,13 +493,12 @@ static int usb6fire_pcm_prepare(struct snd_pcm_substream *alsa_sub)
|
||||||
sub->period_off = 0;
|
sub->period_off = 0;
|
||||||
|
|
||||||
if (rt->stream_state == STREAM_DISABLED) {
|
if (rt->stream_state == STREAM_DISABLED) {
|
||||||
rt->rate = -1;
|
|
||||||
for (i = 0; i < ARRAY_SIZE(rates); i++)
|
for (i = 0; i < ARRAY_SIZE(rates); i++)
|
||||||
if (alsa_rt->rate == rates[i]) {
|
if (alsa_rt->rate == rates[i]) {
|
||||||
rt->rate = i;
|
rt->rate = i;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (rt->rate == -1) {
|
if (i == ARRAY_SIZE(rates)) {
|
||||||
mutex_unlock(&rt->stream_mutex);
|
mutex_unlock(&rt->stream_mutex);
|
||||||
snd_printk("invalid rate %d in prepare.\n",
|
snd_printk("invalid rate %d in prepare.\n",
|
||||||
alsa_rt->rate);
|
alsa_rt->rate);
|
||||||
|
|
Loading…
Reference in New Issue