diff options
| author | 2012-03-19 17:02:01 -0700 | |
|---|---|---|
| committer | 2012-03-19 17:02:01 -0700 | |
| commit | 10ce3cc919f50c2043b41ca968b43c26a3672600 (patch) | |
| tree | ea409366a5208aced495bc0516a08b81fd43222e /sound/usb/format.c | |
| parent | Input: wacom - fix physical size calculation for 3rd-gen Bamboo (diff) | |
| parent | Input: ili210x - add support for Ilitek ILI210x based touchscreens (diff) | |
| download | wireguard-linux-10ce3cc919f50c2043b41ca968b43c26a3672600.tar.xz wireguard-linux-10ce3cc919f50c2043b41ca968b43c26a3672600.zip | |
Merge branch 'next' into for-linus
Diffstat (limited to '')
| -rw-r--r-- | sound/usb/format.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/sound/usb/format.c b/sound/usb/format.c index 89421d176570..ddfef57c4c9f 100644 --- a/sound/usb/format.c +++ b/sound/usb/format.c @@ -226,7 +226,7 @@ static int parse_uac2_sample_rate_range(struct audioformat *fp, int nr_triplets, int min = combine_quad(&data[2 + 12 * i]); int max = combine_quad(&data[6 + 12 * i]); int res = combine_quad(&data[10 + 12 * i]); - int rate; + unsigned int rate; if ((max < 0) || (min < 0) || (res < 0) || (max < min)) continue; @@ -253,6 +253,10 @@ static int parse_uac2_sample_rate_range(struct audioformat *fp, int nr_triplets, fp->rates |= snd_pcm_rate_to_rate_bit(rate); nr_rates++; + if (nr_rates >= MAX_NR_RATES) { + snd_printk(KERN_ERR "invalid uac2 rates\n"); + break; + } /* avoid endless loop */ if (res == 0) |
