ALSA: snd-usb: avoid dividing by zero on invalid input
[deliverable/linux.git] / sound / usb / mixer.c
index c22fa76e363ae5699e9885cc548fdc28d25607b3..ee9aa087d8b5960e46bede2f58c2f3d1e91f6af1 100644 (file)
@@ -1191,6 +1191,11 @@ static int parse_audio_feature_unit(struct mixer_build *state, int unitid, void
 
        if (state->mixer->protocol == UAC_VERSION_1) {
                csize = hdr->bControlSize;
+               if (!csize) {
+                       snd_printdd(KERN_ERR "usbaudio: unit %u: "
+                                   "invalid bControlSize == 0\n", unitid);
+                       return -EINVAL;
+               }
                channels = (hdr->bLength - 7) / csize - 1;
                bmaControls = hdr->bmaControls;
        } else {
This page took 0.025313 seconds and 5 git commands to generate.