diff --git a/0001-si-standard-link-fix-crash-after-returning-a-link-error.patch b/0001-si-standard-link-fix-crash-after-returning-a-link-error.patch new file mode 100644 index 0000000..277e870 --- /dev/null +++ b/0001-si-standard-link-fix-crash-after-returning-a-link-error.patch @@ -0,0 +1,36 @@ +From 6e67000d5e42fc30e6f7ff3ec5544e0be8dcbf00 Mon Sep 17 00:00:00 2001 +From: George Kiagiadakis +Date: Sat, 16 Oct 2021 09:51:00 +0300 +Subject: [PATCH] si-standard-link: fix crash after returning a link error + +If one link fails, the activation transition will return, but then +other links will continue to call the callback and try to access +the now invalid activation transition. With this change, the callback +is bound to the lifetime of the transition and will stop being called +after the transition returns + +Fixes #76 +--- + modules/module-si-standard-link.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/modules/module-si-standard-link.c b/modules/module-si-standard-link.c +index 5dda0581..95ec7ca5 100644 +--- a/modules/module-si-standard-link.c ++++ b/modules/module-si-standard-link.c +@@ -310,9 +310,10 @@ create_links (WpSiStandardLink * self, WpTransition * transition, + + /* activate to ensure it is created without errors */ + self->n_async_ops_wait++; +- wp_object_activate (WP_OBJECT (link), ++ wp_object_activate_closure (WP_OBJECT (link), + WP_PIPEWIRE_OBJECT_FEATURES_MINIMAL, NULL, +- (GAsyncReadyCallback) on_link_activated, transition); ++ g_cclosure_new_object ( ++ (GCallback) on_link_activated, G_OBJECT (transition))); + } + g_variant_iter_free (iter); + return self->node_links->len > 0; +-- +GitLab + diff --git a/_service b/_service index 701485f..b6bd227 100644 --- a/_service +++ b/_service @@ -4,7 +4,7 @@ git https://gitlab.freedesktop.org/pipewire/wireplumber.git enable - 0.4.1 + 0.4.4 @PARENT_TAG@