From 0dcbbcad0194b2efae373db0beec834deb4a0d11 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Tue, 11 Jul 2023 19:34:21 +0200 Subject: [PATCH] client-node: do check for data_loop so that we don't crash on older pipewire. See #3243 --- src/modules/module-client-node/client-node.c | 5 +++++ src/modules/module-client-node/remote-node.c | 3 +++ 2 files changed, 8 insertions(+) diff --git a/src/modules/module-client-node/client-node.c b/src/modules/module-client-node/client-node.c index 929ddbbbc..18ddfa6bc 100644 --- a/src/modules/module-client-node/client-node.c +++ b/src/modules/module-client-node/client-node.c @@ -1699,6 +1699,11 @@ struct pw_impl_client_node *pw_impl_client_node_new(struct pw_resource *resource if (this->node == NULL) goto error_no_node; + if (this->node->data_loop == NULL) { + errno = EIO; + goto error_no_node; + } + impl->data_loop = this->node->data_loop->loop; impl->data_system = this->node->data_loop->system; diff --git a/src/modules/module-client-node/remote-node.c b/src/modules/module-client-node/remote-node.c index 12617a1e1..356ca115d 100644 --- a/src/modules/module-client-node/remote-node.c +++ b/src/modules/module-client-node/remote-node.c @@ -1187,6 +1187,9 @@ static struct pw_proxy *node_export(struct pw_core *core, void *object, bool do_ struct pw_proxy *client_node; struct node_data *data; + if (node->data_loop == NULL) + goto error; + user_data_size = SPA_ROUND_UP_N(user_data_size, __alignof__(struct node_data)); client_node = pw_core_create_object(core,