summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--media-plugins/alsa-plugins/alsa-plugins-1.1.7-r1.ebuild (renamed from media-plugins/alsa-plugins/alsa-plugins-1.1.7.ebuild)6
-rw-r--r--media-plugins/alsa-plugins/files/alsa-plugins-1.1.7-double_free_fix.patch34
2 files changed, 39 insertions, 1 deletions
diff --git a/media-plugins/alsa-plugins/alsa-plugins-1.1.7.ebuild b/media-plugins/alsa-plugins/alsa-plugins-1.1.7-r1.ebuild
index 2eff3aacc81b..f97cc166249b 100644
--- a/media-plugins/alsa-plugins/alsa-plugins-1.1.7.ebuild
+++ b/media-plugins/alsa-plugins/alsa-plugins-1.1.7-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2018 Gentoo Authors
+# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -30,6 +30,10 @@ RDEPEND="
DEPEND="${RDEPEND}"
BDEPEND="virtual/pkgconfig"
+PATCHES=(
+ "${FILESDIR}"/${P}-double_free_fix.patch
+)
+
src_prepare() {
default
diff --git a/media-plugins/alsa-plugins/files/alsa-plugins-1.1.7-double_free_fix.patch b/media-plugins/alsa-plugins/files/alsa-plugins-1.1.7-double_free_fix.patch
new file mode 100644
index 000000000000..9b3a81599b39
--- /dev/null
+++ b/media-plugins/alsa-plugins/files/alsa-plugins-1.1.7-double_free_fix.patch
@@ -0,0 +1,34 @@
+From a4e7e1282c57a2f4e83afe9a4008042d8b4c5bb9 Mon Sep 17 00:00:00 2001
+From: Jaroslav Kysela <perex@perex.cz>
+Date: Tue, 23 Oct 2018 09:32:46 +0200
+Subject: [PATCH] a52_close: set slave to NULL to avoid double pcm free in
+ open fcn
+
+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
+---
+ a52/pcm_a52.c | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+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;
+ }
+
+--
+1.7.11.7
+