| From: Johan Hovold <johan@kernel.org> |
| Date: Tue, 14 Jan 2020 09:39:53 +0100 |
| Subject: ALSA: usb-audio: fix sync-ep altsetting sanity check |
| |
| commit 5d1b71226dc4d44b4b65766fa9d74492f9d4587b upstream. |
| |
| The altsetting sanity check in set_sync_ep_implicit_fb_quirk() was |
| checking for there to be at least one altsetting but then went on to |
| access the second one, which may not exist. |
| |
| This could lead to random slab data being used to initialise the sync |
| endpoint in snd_usb_add_endpoint(). |
| |
| Fixes: c75a8a7ae565 ("ALSA: snd-usb: add support for implicit feedback") |
| Fixes: ca10a7ebdff1 ("ALSA: usb-audio: FT C400 sync playback EP to capture EP") |
| Fixes: 5e35dc0338d8 ("ALSA: usb-audio: add implicit fb quirk for Behringer UFX1204") |
| Fixes: 17f08b0d9aaf ("ALSA: usb-audio: add implicit fb quirk for Axe-Fx II") |
| Fixes: 103e9625647a ("ALSA: usb-audio: simplify set_sync_ep_implicit_fb_quirk") |
| Signed-off-by: Johan Hovold <johan@kernel.org> |
| Link: https://lore.kernel.org/r/20200114083953.1106-1-johan@kernel.org |
| Signed-off-by: Takashi Iwai <tiwai@suse.de> |
| Signed-off-by: Ben Hutchings <ben@decadent.org.uk> |
| --- |
| sound/usb/pcm.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/sound/usb/pcm.c |
| +++ b/sound/usb/pcm.c |
| @@ -368,7 +368,7 @@ static int set_sync_ep_implicit_fb_quirk |
| add_sync_ep_from_ifnum: |
| iface = usb_ifnum_to_if(dev, ifnum); |
| |
| - if (!iface || iface->num_altsetting == 0) |
| + if (!iface || iface->num_altsetting < 2) |
| return -EINVAL; |
| |
| alts = &iface->altsetting[1]; |