]> git.alsa-project.org Git - alsa-lib.git/commitdiff
pcm: hw - prevent divide by zero for broken apps
authorJaroslav Kysela <perex@perex.cz>
Tue, 16 May 2023 06:57:31 +0000 (08:57 +0200)
committerJaroslav Kysela <perex@perex.cz>
Tue, 16 May 2023 06:59:20 +0000 (08:59 +0200)
Fixes: https://github.com/alsa-project/alsa-lib/issues/318
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
src/pcm/pcm_hw.c

index 8ffebed9e9db551424c79c2576a8bf51a4e1c173..26ff62c2404ac2e376c014814051f41b10069e2d 100644 (file)
@@ -742,6 +742,9 @@ static int snd_pcm_hw_drain(snd_pcm_t *pcm)
 
        if (pcm->stream != SND_PCM_STREAM_PLAYBACK)
                goto __skip_silence;
+       /* stream probably in SETUP, prevent divide by zero */
+       if (pcm->period_size == 0)
+               goto __skip_silence;
        if (hw->drain_silence == 0 || hw->perfect_drain)
                goto __skip_silence;
        snd_pcm_sw_params_current_no_lock(pcm, &sw_params);