From: Takashi Iwai Date: Tue, 21 Nov 2017 16:07:43 +0000 (+0100) Subject: ALSA: usb-audio: Fix potential zero-division at parsing FU X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=8428a8ebde2db1e988e41a58497a28beb7ce1705;p=openwrt%2Fstaging%2Fblogic.git ALSA: usb-audio: Fix potential zero-division at parsing FU parse_audio_feature_unit() contains a code dividing potentially with zero when a malformed FU descriptor is passed. Although there is already a sanity check, it checks only the value zero, hence it can still lead to a zero-division when a value 1 is passed there. Fix it by correcting the sanity check (and the error message thereof). Fixes: 23caaf19b11e ("ALSA: usb-mixer: Add support for Audio Class v2.0") Cc: Signed-off-by: Takashi Iwai --- diff --git a/sound/usb/mixer.c b/sound/usb/mixer.c index 61b348383de8..0537c6322990 100644 --- a/sound/usb/mixer.c +++ b/sound/usb/mixer.c @@ -1476,9 +1476,9 @@ static int parse_audio_feature_unit(struct mixer_build *state, int unitid, return -EINVAL; } csize = hdr->bControlSize; - if (!csize) { + if (csize <= 1) { usb_audio_dbg(state->chip, - "unit %u: invalid bControlSize == 0\n", + "unit %u: invalid bControlSize <= 1\n", unitid); return -EINVAL; }