]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - sound/usb/mixer_quirks.c
ALSA: usb-audio: Add sanity checks for endpoint accesses
[karo-tx-linux.git] / sound / usb / mixer_quirks.c
index 279025650568ec2936e270d33a1737fd5f504cd6..f6c3bf79af9a7d9f7cabe6b83c3573a59964b826 100644 (file)
@@ -1519,7 +1519,11 @@ static int snd_microii_spdif_default_get(struct snd_kcontrol *kcontrol,
 
        /* use known values for that card: interface#1 altsetting#1 */
        iface = usb_ifnum_to_if(chip->dev, 1);
+       if (!iface || iface->num_altsetting < 2)
+               return -EINVAL;
        alts = &iface->altsetting[1];
+       if (get_iface_desc(alts)->bNumEndpoints < 1)
+               return -EINVAL;
        ep = get_endpoint(alts, 0)->bEndpointAddress;
 
        err = snd_usb_ctl_msg(chip->dev,