You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/media-video/pipewire/files/pipewire-0.3.36-fix-crash-u...

37 lines
1.3 KiB

https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/39c8ed4f62172026036281691cd3b67b469a8629
From 39c8ed4f62172026036281691cd3b67b469a8629 Mon Sep 17 00:00:00 2001
From: Pauli Virtanen <pav@iki.fi>
Date: Thu, 16 Sep 2021 19:18:52 +0300
Subject: [PATCH] media-session: don't use-after-free if linking node removed
Should fix an ASAN crash.
---
src/examples/media-session/policy-node.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/examples/media-session/policy-node.c b/src/examples/media-session/policy-node.c
index d83613d0b..e273434fa 100644
--- a/src/examples/media-session/policy-node.c
+++ b/src/examples/media-session/policy-node.c
@@ -869,6 +869,7 @@ static int link_nodes(struct node *node, struct node *peer)
struct pw_properties *props;
struct node *output, *input;
int res;
+ uint32_t node_id = node->id;
pw_log_debug(NAME " %p: link nodes %d %d remix:%d", impl,
node->id, peer->id, !node->dont_remix);
@@ -902,7 +903,7 @@ static int link_nodes(struct node *node, struct node *peer)
if (impl->linking_node_removed) {
impl->linking_node_removed = false;
- pw_log_info("linking node %d was removed", node->id);
+ pw_log_info("linking node %d was removed", node_id);
return -ENOENT;
}
node->linking = false;
--
GitLab