aboutsummaryrefslogtreecommitdiffstats
path: root/testing/alsa-plugins/alsa-plugins-1.1.7-double_free_fix.patch
blob: f62ede8be204a2e52e2ae045d8d7b170b0da535c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
From: Jaroslav Kysela <perex@perex.cz>
Date: Tue, 23 Oct 2018 07:32:46 +0000 (+0200)
Subject: a52_close: set slave to NULL to avoid double pcm free in open fcn
X-Git-Tag: v1.1.8~19
X-Git-Url: http://git.alsa-project.org/?p=alsa-plugins.git;a=commitdiff_plain;h=a4e7e1282c57a2f4e83afe9a4008042d8b4c5bb9

a52_close: set slave to NULL to avoid double pcm free in open fcn

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
---

diff --git a/a52/pcm_a52.c b/a52/pcm_a52.c
index e431fd0..b005bc2 100644
--- a/a52/pcm_a52.c
+++ b/a52/pcm_a52.c
@@ -654,10 +654,13 @@ static int a52_poll_revents(snd_pcm_ioplug_t *io, struct pollfd *pfd,
 static int a52_close(snd_pcm_ioplug_t *io)
 {
 	struct a52_ctx *rec = io->private_data;
+	snd_pcm_t *slave = rec->slave;
 
 	a52_free(rec);
-	if (rec->slave)
-		return snd_pcm_close(rec->slave);
+	if (slave) {
+		rec->slave = NULL;
+		return snd_pcm_close(slave);
+	}
 	return 0;
 }