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,