3.2.99-rc1 review patch.  If anyone has any objections, please let me know.

------------------

From: Takashi Iwai <[email protected]>

commit 8428a8ebde2db1e988e41a58497a28beb7ce1705 upstream.

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")
Signed-off-by: Takashi Iwai <[email protected]>
[bwh: Backported to 3.2: adjust context]
Signed-off-by: Ben Hutchings <[email protected]>
---
 sound/usb/mixer.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

--- a/sound/usb/mixer.c
+++ b/sound/usb/mixer.c
@@ -1262,9 +1262,9 @@ static int parse_audio_feature_unit(stru
                        return -EINVAL;
                }
                csize = hdr->bControlSize;
-               if (!csize) {
+               if (csize <= 1) {
                        snd_printdd(KERN_ERR "usbaudio: unit %u: "
-                                   "invalid bControlSize == 0\n", unitid);
+                                   "invalid bControlSize <= 1\n", unitid);
                        return -EINVAL;
                }
                channels = (hdr->bLength - 7) / csize - 1;

Reply via email to