[alsa-devel] [PATCH] pcm_plug: Clear plugins on all error conditions

Takashi Iwai tiwai at suse.de
Wed Oct 19 22:00:00 CEST 2016


On Wed, 19 Oct 2016 08:10:28 +0200,
Michael Forney wrote:
> 
> Otherwise, they will linger after the error is returned (but pcm->setup == 0).
> Then, if the caller tries to clean up and call snd_pcm_close(), the assertion
> plug->gen.slave == plug->req_slave will fail.

The changes look OK, but could you give your sign-off?


thanks,

Takashi

> ---
>  src/pcm/pcm_plug.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/src/pcm/pcm_plug.c b/src/pcm/pcm_plug.c
> index 5639b9e..266707b 100644
> --- a/src/pcm/pcm_plug.c
> +++ b/src/pcm/pcm_plug.c
> @@ -652,8 +652,10 @@ static int snd_pcm_plug_insert_plugins(snd_pcm_t *pcm,
>  	       (plug->ttable && !plug->ttable_ok)) {
>  		snd_pcm_t *new;
>  		int err;
> -		if (k >= sizeof(funcs)/sizeof(*funcs))
> +		if (k >= sizeof(funcs)/sizeof(*funcs)) {
> +			snd_pcm_plug_clear(pcm);
>  			return -EINVAL;
> +		}
>  		err = funcs[k](pcm, &new, client, &p);
>  		if (err < 0) {
>  			snd_pcm_plug_clear(pcm);
> -- 
> 2.10.1
> 


More information about the Alsa-devel mailing list