From d2e4ad1ae629d6d150f7642cfa92f40807ebe7f3 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Mon, 19 Feb 2024 17:39:39 +0100 Subject: [PATCH] pulse-server: Make sure peer_sink name is filled Use 'unknown' when we can't find the peer_name. Otherwise we will just get a protocol error when the node.name is missing. --- src/modules/module-protocol-pulse/pulse-server.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/modules/module-protocol-pulse/pulse-server.c b/src/modules/module-protocol-pulse/pulse-server.c index c922ca0db..282e7fd52 100644 --- a/src/modules/module-protocol-pulse/pulse-server.c +++ b/src/modules/module-protocol-pulse/pulse-server.c @@ -597,6 +597,8 @@ static int reply_create_playback_stream(struct stream *stream, struct pw_manager if (peer && pw_manager_object_is_sink(peer)) { peer_index = peer->index; peer_name = pw_properties_get(peer->props, PW_KEY_NODE_NAME); + if (peer_name == NULL) + peer_name = "unknown"; } else { peer_index = SPA_ID_INVALID; peer_name = NULL; @@ -751,6 +753,8 @@ static int reply_create_record_stream(struct stream *stream, struct pw_manager_o peer = find_linked(manager, peer->id, PW_DIRECTION_OUTPUT); if (peer && pw_manager_object_is_source_or_monitor(peer)) { name = pw_properties_get(peer->props, PW_KEY_NODE_NAME); + if (name == NULL) + name = "unknown"; peer_index = peer->index; if (!pw_manager_object_is_source(peer)) { size_t len = (name ? strlen(name) : 5) + 10; @@ -860,6 +864,8 @@ static void manager_added(void *data, struct pw_manager_object *o) s->peer_index = peer->index; peer_name = pw_properties_get(peer->props, PW_KEY_NODE_NAME); + if (peer_name == NULL) + peer_name = "unknown"; if (peer_name && s->direction == PW_DIRECTION_INPUT && pw_manager_object_is_monitor(peer)) { int len = strlen(peer_name) + 10;