diff --git a/sound/usb/mixer.c b/sound/usb/mixer.c index 7498b5191b68e4cf0368599998160ec0eb17f29d..ea487378be1798b5cd7e9eaaf7c2a9562999f8cb 100644 --- a/sound/usb/mixer.c +++ b/sound/usb/mixer.c @@ -744,6 +744,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: