diff mbox series

ALSA: synth: emux: soundfont.c: divide by zero in calc_gus_envelope_time()

Message ID 20190506125119.GB13799@mwanda (mailing list archive)
State New, archived
Headers show
Series ALSA: synth: emux: soundfont.c: divide by zero in calc_gus_envelope_time() | expand

Commit Message

Dan Carpenter May 6, 2019, 12:51 p.m. UTC
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(+)

Comments

Takashi Iwai May 6, 2019, 1:01 p.m. UTC | #1
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)
> +		p = 1;
>  	t = end - start;
>  	if (t < 0) t = -t;
>  	if (13 > r)
> -- 
> 2.18.0
> 
>
diff mbox series

Patch

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)