mirror of
https://gitlab.freedesktop.org/pipewire/pipewire
synced 2024-09-15 22:20:09 +00:00
pulse-server: avoid crashing when clearing metadata
The key will be NULL so we can't strdup it. Fixes #845
This commit is contained in:
parent
1c365f6169
commit
662fd8a1f9
|
@ -871,7 +871,7 @@ static void refresh_auto_default_nodes(struct impl *impl)
|
|||
const char *name = pw_properties_get(node->obj->obj.props, PW_KEY_NODE_NAME);
|
||||
char buf[1024];
|
||||
|
||||
if (strzcmp(name, def->value) == 0)
|
||||
if (name == NULL || strzcmp(name, def->value) == 0)
|
||||
continue;
|
||||
|
||||
free(def->value);
|
||||
|
|
|
@ -953,7 +953,7 @@ static void manager_metadata(void *data, struct pw_manager_object *o,
|
|||
}
|
||||
if ((changed = strzcmp(client->default_sink, value))) {
|
||||
free(client->default_sink);
|
||||
client->default_sink = strdup(value);
|
||||
client->default_sink = value ? strdup(value) : NULL;
|
||||
}
|
||||
}
|
||||
if (key == NULL || strcmp(key, "default.audio.source") == 0) {
|
||||
|
@ -966,7 +966,7 @@ static void manager_metadata(void *data, struct pw_manager_object *o,
|
|||
}
|
||||
if ((changed = strzcmp(client->default_source, value))) {
|
||||
free(client->default_source);
|
||||
client->default_source = strdup(value);
|
||||
client->default_source = value ? strdup(value) : NULL;
|
||||
}
|
||||
}
|
||||
if (changed)
|
||||
|
|
Loading…
Reference in a new issue