[alsa-devel] [PATCH] ALSA: synth: emux: soundfont.c: divide by zero in calc_gus_envelope_time()
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 --- sound/synth/emux/soundfont.c | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/sound/synth/emux/soundfont.c b/sound/synth/emux/soundfont.c index 31a4ea94830e..9b5d70104489 100644 --- a/sound/synth/emux/soundfont.c +++ b/sound/synth/emux/soundfont.c @@ -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)
On Mon, 06 May 2019 14:51:19 +0200, Dan Carpenter wrote:
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
Thanks, applied now.
Takashi
sound/synth/emux/soundfont.c | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/sound/synth/emux/soundfont.c b/sound/synth/emux/soundfont.c index 31a4ea94830e..9b5d70104489 100644 --- a/sound/synth/emux/soundfont.c +++ b/sound/synth/emux/soundfont.c @@ -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)
t = end - start; if (t < 0) t = -t; if (13 > r)p = 1;
-- 2.18.0
participants (2)
-
Dan Carpenter
-
Takashi Iwai