[alsa-devel] [PATCH] ALSA: synth: emux: soundfont.c: divide by zero in calc_gus_envelope_time()

Dan Carpenter dan.carpenter at oracle.com
Mon May 6 14:51:19 CEST 2019


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 at 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)
-- 
2.18.0



More information about the Alsa-devel mailing list