From 4e17d4cdf88d354494e355039347c04ad30d256e Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Wed, 19 Aug 2020 16:47:52 +0200 Subject: [PATCH] pulse: don't leak device_name Small cleanups --- pipewire-pulseaudio/src/context.c | 21 ++++++++++++--------- pipewire-pulseaudio/src/stream.c | 1 + 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/pipewire-pulseaudio/src/context.c b/pipewire-pulseaudio/src/context.c index c4c050b10..e251c75dd 100644 --- a/pipewire-pulseaudio/src/context.c +++ b/pipewire-pulseaudio/src/context.c @@ -1183,6 +1183,8 @@ static int set_mask(pa_context *c, struct global *g) g->event = PA_SUBSCRIPTION_EVENT_CLIENT; ginfo = &client_info; } else if (strcmp(g->type, PW_TYPE_INTERFACE_Link) == 0) { + uint32_t src_node_id, dst_node_id; + if ((str = pw_properties_get(g->props, PW_KEY_LINK_OUTPUT_PORT)) == NULL) return 0; g->link_info.src = pa_context_find_global(c, pw_properties_parse_int(str)); @@ -1193,17 +1195,18 @@ static int set_mask(pa_context *c, struct global *g) if (g->link_info.src == NULL || g->link_info.dst == NULL) return 0; - pw_log_debug("link %d:%d->%d:%d", - g->link_info.src->port_info.node_id, - g->link_info.src->id, - g->link_info.dst->port_info.node_id, - g->link_info.dst->id); + src_node_id = g->link_info.src->port_info.node_id; + dst_node_id = g->link_info.dst->port_info.node_id; - if ((f = pa_context_find_global(c, g->link_info.src->port_info.node_id)) != NULL && - !f->init) + pw_log_debug("link %d:%d->%d:%d", + src_node_id, g->link_info.src->id, + dst_node_id, g->link_info.dst->id); + + f = pa_context_find_global(c, src_node_id); + if (f != NULL && !f->init) emit_event(c, f, PA_SUBSCRIPTION_EVENT_CHANGE); - if ((f = pa_context_find_global(c, g->link_info.dst->port_info.node_id)) != NULL && - !f->init) + f = pa_context_find_global(c, dst_node_id); + if (f != NULL && !f->init) emit_event(c, f, PA_SUBSCRIPTION_EVENT_CHANGE); } else if (strcmp(g->type, PW_TYPE_INTERFACE_Metadata) == 0) { diff --git a/pipewire-pulseaudio/src/stream.c b/pipewire-pulseaudio/src/stream.c index 2771b190d..c5f5aabca 100644 --- a/pipewire-pulseaudio/src/stream.c +++ b/pipewire-pulseaudio/src/stream.c @@ -78,6 +78,7 @@ static void configure_device(pa_stream *s) s->device_index = g->id; } + free(s->device_name); if ((str = pw_properties_get(g->props, PW_KEY_NODE_NAME)) == NULL) s->device_name = strdup("unknown"); else