mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-04 13:30:12 -05:00
pulse-server: Make sure we don't send null name and description
We can't send a null name or description because that makes clients crash.
This commit is contained in:
parent
026e3882d2
commit
bdbd3e3f2e
1 changed files with 26 additions and 22 deletions
|
|
@ -4050,20 +4050,23 @@ static int fill_sink_info(struct client *client, struct message *m,
|
|||
uint32_t flags;
|
||||
struct card_info card_info = CARD_INFO_INIT;
|
||||
struct device_info dev_info = DEVICE_INFO_INIT(PW_DIRECTION_OUTPUT);
|
||||
size_t size;
|
||||
|
||||
if (!object_is_sink(o) || info == NULL || info->props == NULL)
|
||||
return -ENOENT;
|
||||
|
||||
if ((name = spa_dict_lookup(info->props, PW_KEY_NODE_NAME)) != NULL) {
|
||||
size_t size = strlen(name) + 10;
|
||||
monitor_name = alloca(size);
|
||||
if (object_is_source(o))
|
||||
snprintf(monitor_name, size, "%s", name);
|
||||
else
|
||||
snprintf(monitor_name, size, "%s.monitor", name);
|
||||
}
|
||||
name = spa_dict_lookup(info->props, PW_KEY_NODE_NAME);
|
||||
if ((desc = spa_dict_lookup(info->props, PW_KEY_NODE_DESCRIPTION)) == NULL)
|
||||
desc = name;
|
||||
desc = name ? name : "Unknown";
|
||||
if (name == NULL)
|
||||
name = "unknown";
|
||||
|
||||
size = strlen(name) + 10;
|
||||
monitor_name = alloca(size);
|
||||
if (object_is_source(o))
|
||||
snprintf(monitor_name, size, "%s", name);
|
||||
else
|
||||
snprintf(monitor_name, size, "%s.monitor", name);
|
||||
|
||||
if ((str = spa_dict_lookup(info->props, PW_KEY_MODULE_ID)) != NULL)
|
||||
module_id = (uint32_t)atoi(str);
|
||||
|
|
@ -4188,24 +4191,25 @@ static int fill_source_info(struct client *client, struct message *m,
|
|||
uint32_t flags;
|
||||
struct card_info card_info = CARD_INFO_INIT;
|
||||
struct device_info dev_info = DEVICE_INFO_INIT(PW_DIRECTION_INPUT);
|
||||
size_t size;
|
||||
|
||||
is_monitor = object_is_monitor(o);
|
||||
if ((!object_is_source(o) && !is_monitor) || info == NULL || info->props == NULL)
|
||||
return -ENOENT;
|
||||
|
||||
if ((name = spa_dict_lookup(info->props, PW_KEY_NODE_NAME)) != NULL) {
|
||||
size_t size = strlen(name) + 10;
|
||||
monitor_name = alloca(size);
|
||||
snprintf(monitor_name, size, "%s.monitor", name);
|
||||
}
|
||||
if ((desc = spa_dict_lookup(info->props, PW_KEY_NODE_DESCRIPTION)) != NULL) {
|
||||
size_t size = strlen(desc) + 20;
|
||||
monitor_desc = alloca(size);
|
||||
snprintf(monitor_desc, size, "Monitor of %s", desc);
|
||||
} else {
|
||||
desc = name;
|
||||
monitor_desc = monitor_name;
|
||||
}
|
||||
name = spa_dict_lookup(info->props, PW_KEY_NODE_NAME);
|
||||
if ((desc = spa_dict_lookup(info->props, PW_KEY_NODE_DESCRIPTION)) == NULL)
|
||||
desc = name ? name : "Unknown";
|
||||
if (name == NULL)
|
||||
name = "unknown";
|
||||
|
||||
size = strlen(name) + 10;
|
||||
monitor_name = alloca(size);
|
||||
snprintf(monitor_name, size, "%s.monitor", name);
|
||||
|
||||
size = strlen(desc) + 20;
|
||||
monitor_desc = alloca(size);
|
||||
snprintf(monitor_desc, size, "Monitor of %s", desc);
|
||||
|
||||
if ((str = spa_dict_lookup(info->props, PW_KEY_MODULE_ID)) != NULL)
|
||||
module_id = (uint32_t)atoi(str);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue