ALSA: usb-audio: Fix NULL dereference in create_fixed_stream_quirk()
[pandora-kernel.git] / sound / usb / quirks.c
index b01d3cf..c5e912e 100644 (file)
@@ -165,6 +165,12 @@ static int create_fixed_stream_quirk(struct snd_usb_audio *chip,
                return -EINVAL;
        }
        alts = &iface->altsetting[fp->altset_idx];
+       if (get_iface_desc(alts)->bNumEndpoints < 1) {
+               kfree(fp);
+               kfree(rate_table);
+               return -EINVAL;
+       }
+
        fp->datainterval = snd_usb_parse_datainterval(chip, alts);
        fp->maxpacksize = le16_to_cpu(get_endpoint(alts, 0)->wMaxPacketSize);
        usb_set_interface(chip->dev, fp->iface, 0);