mirror of
https://github.com/alsa-project/alsa-lib.git
synced 2025-10-29 05:40:25 -04:00
pcm: avoid endless loop in snd_pcm_sw_params_default()
BugLink: https://lore.kernel.org/alsa-devel/167734349294.22.1388671545195719262@mailman-web.alsa-project.org/ Signed-off-by: Jaroslav Kysela <perex@perex.cz>
This commit is contained in:
parent
44705e3a20
commit
a8afb0449c
1 changed files with 6 additions and 1 deletions
|
|
@ -2335,6 +2335,9 @@ static int snd_pcm_sw_params_default(snd_pcm_t *pcm, snd_pcm_sw_params_t *params
|
|||
params->silence_threshold = 0;
|
||||
params->silence_size = 0;
|
||||
params->boundary = pcm->buffer_size;
|
||||
/* this should not happen (bad child?) */
|
||||
if (params->boundary == 0)
|
||||
return -EINVAL;
|
||||
while (params->boundary * 2 <= LONG_MAX - pcm->buffer_size)
|
||||
params->boundary *= 2;
|
||||
return 0;
|
||||
|
|
@ -2431,7 +2434,9 @@ int _snd_pcm_hw_params_internal(snd_pcm_t *pcm, snd_pcm_hw_params_t *params)
|
|||
|
||||
/* Default sw params */
|
||||
memset(&sw, 0, sizeof(sw));
|
||||
snd_pcm_sw_params_default(pcm, &sw);
|
||||
err = snd_pcm_sw_params_default(pcm, &sw);
|
||||
if (err < 0)
|
||||
return err;
|
||||
err = snd_pcm_sw_params(pcm, &sw);
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue