From d321e9b93e9dcb8b677f0d79566e10a483508936 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Mon, 19 Jun 2023 12:31:46 +0200 Subject: [PATCH] core: ensure we don't remove and disconnect twice Check for multiple recursive disconnect calls by checking the flags before calling the pw_proxy methods. This ensure that calling disconnect from one of the proxy removed callbacks does not trigger another disconnect later on. --- src/pipewire/core.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/pipewire/core.c b/src/pipewire/core.c index 88f2455c3..cd2db82b1 100644 --- a/src/pipewire/core.c +++ b/src/pipewire/core.c @@ -479,7 +479,9 @@ SPA_EXPORT int pw_core_disconnect(struct pw_core *core) { pw_log_debug("%p: disconnect", core); - pw_proxy_remove(&core->proxy); - pw_proxy_destroy(&core->proxy); + if (!core->removed) + pw_proxy_remove(&core->proxy); + if (!core->destroyed) + pw_proxy_destroy(&core->proxy); return 0; }