diff --git a/sound/usb/mixer.c b/sound/usb/mixer.c index 409fc1164694..8e596af23bee 100644 --- a/sound/usb/mixer.c +++ b/sound/usb/mixer.c @@ -1999,6 +1999,9 @@ static int parse_audio_feature_unit(struct mixer_build *state, int unitid, if (state->mixer->protocol == UAC_VERSION_1) { csize = hdr->bControlSize; + printk("c: %d, bLen: %d, %d, \n", channels, hdr->bLength, csize, __func__); + if (hdr->bLength < 7 || csize < 1) + return -EINVAL; channels = (hdr->bLength - 7) / csize - 1; bmaControls = hdr->bmaControls; } else if (state->mixer->protocol == UAC_VERSION_2) {