projects
/
GitHub
/
LineageOS
/
G12
/
android_kernel_amlogic_linux-4.9.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
7b3e2cb
)
ALSA: usb-audio: Fix an out-of-bounds bug in __snd_usb_parse_audio_interface()
author
Dongxiang Ke
<kdx.glider@gmail.com>
Tue, 6 Sep 2022 02:49:28 +0000
(10:49 +0800)
committer
Greg Kroah-Hartman
<gregkh@linuxfoundation.org>
Thu, 15 Sep 2022 10:39:46 +0000
(12:39 +0200)
commit
e53f47f6c1a56d2af728909f1cb894da6b43d9bf
upstream.
There may be a bad USB audio device with a USB ID of (0x04fa, 0x4201) and
the number of it's interfaces less than 4, an out-of-bounds read bug occurs
when parsing the interface descriptor for this device.
Fix this by checking the number of interfaces.
Signed-off-by: Dongxiang Ke <kdx.glider@gmail.com>
Link:
https://lore.kernel.org/r/20220906024928.10951-1-kdx.glider@gmail.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
sound/usb/stream.c
patch
|
blob
|
blame
|
history
diff --git
a/sound/usb/stream.c
b/sound/usb/stream.c
index a50718fca613de214ff3af0d2389b7ea11e9de22..166a88cccca9110db74cc03edc67271e28979785 100644
(file)
--- a/
sound/usb/stream.c
+++ b/
sound/usb/stream.c
@@
-502,7
+502,7
@@
int snd_usb_parse_audio_interface(struct snd_usb_audio *chip, int iface_no)
* Dallas DS4201 workaround: It presents 5 altsettings, but the last
* one misses syncpipe, and does not produce any sound.
*/
- if (chip->usb_id == USB_ID(0x04fa, 0x4201))
+ if (chip->usb_id == USB_ID(0x04fa, 0x4201)
&& num >= 4
)
num = 4;
for (i = 0; i < num; i++) {