diff --git a/sound/usb/mixer.c b/sound/usb/mixer.c index 7e1c6c2dc99e80096c006bf3861d8a01cd3a9d30..cb3d59c1e181e97a08cfbb90fd0bf0006c87dff9 100644 --- a/sound/usb/mixer.c +++ b/sound/usb/mixer.c @@ -759,6 +759,8 @@ static int uac_mixer_unit_get_channels(struct mixer_build *state, return -EINVAL; if (!desc->bNrInPins) return -EINVAL; + if (desc->bLength < sizeof(*desc) + desc->bNrInPins) + return -EINVAL; switch (state->mixer->protocol) { case UAC_VERSION_1: