File 0017-alsa-dont-leak-properties-on-error.patch of Package pipewire.15840
From e11d35107fc9e3a392b74855238be40f7bf69ff7 Mon Sep 17 00:00:00 2001
From: Wim Taymans <wtaymans@redhat.com>
Date: Thu, 2 Jul 2020 15:53:16 +0200
Subject: [PATCH] alsa: don't leak properties on error
---
pipewire-alsa/alsa-plugins/pcm_pipewire.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/pipewire-alsa/alsa-plugins/pcm_pipewire.c b/pipewire-alsa/alsa-plugins/pcm_pipewire.c
index d2fdcf44..560460cb 100644
--- a/pipewire-alsa/alsa-plugins/pcm_pipewire.c
+++ b/pipewire-alsa/alsa-plugins/pcm_pipewire.c
@@ -890,7 +890,7 @@ static int snd_pcm_pipewire_open(snd_pcm_t **pcmp, const char *name,
snd_pcm_pipewire_t *pw;
int err;
const char *str;
- struct pw_properties *props;
+ struct pw_properties *props = NULL;
struct pw_loop *loop;
assert(pcmp);
@@ -947,6 +947,7 @@ static int snd_pcm_pipewire_open(snd_pcm_t **pcmp, const char *name,
pw_thread_loop_lock(pw->main_loop);
pw->core = pw_context_connect(pw->context, props, 0);
+ props = NULL;
if (pw->core == NULL) {
err = -errno;
pw_thread_loop_unlock(pw->main_loop);
@@ -983,7 +984,9 @@ static int snd_pcm_pipewire_open(snd_pcm_t **pcmp, const char *name,
return 0;
- error:
+error:
+ if (props)
+ pw_properties_free(props);
snd_pcm_pipewire_free(pw);
return err;
}