[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