ALSA: synth: emux: soundfont.c: divide by zero in calc_gus_envelope_time()
authorDan Carpenter <dan.carpenter@oracle.com>
Mon, 6 May 2019 12:51:19 +0000 (15:51 +0300)
committerTakashi Iwai <tiwai@suse.de>
Mon, 6 May 2019 13:08:08 +0000 (15:08 +0200)
This function is called from load_guspatch() and the rate is specified
by the user.  If they accidentally selected zero then it would crash the
kernel.  I've just changed the zero to a one.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/synth/emux/soundfont.c

index 31a4ea9..9b5d701 100644 (file)
@@ -856,6 +856,8 @@ calc_gus_envelope_time(int rate, int start, int end)
        int r, p, t;
        r = (3 - ((rate >> 6) & 3)) * 3;
        p = rate & 0x3f;
+       if (!p)
+               p = 1;
        t = end - start;
        if (t < 0) t = -t;
        if (13 > r)