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;
/* 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;