Re: [alsa-devel] [PATCH] pcm_plug: Clear plugins on all error conditions
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
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.
Signed-off-by: Michael Forney mforney@mforney.org --- 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);
On Thu, 20 Oct 2016 03:22:56 +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.
Signed-off-by: Michael Forney mforney@mforney.org
Applied, thanks.
Takashi
participants (2)
-
Michael Forney
-
Takashi Iwai