security: fix NULL pointer dereference in LADSPA sink/source modules

When sink_name/source_name is not provided, pw_properties_get for
PW_KEY_NODE_NAME returns NULL, which is then passed to
pw_properties_setf as a %s argument.

Add NULL check before calling pw_properties_setf.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Wim Taymans 2026-04-30 17:24:52 +02:00
parent 99a89f8bd4
commit c38a32e2e1
2 changed files with 4 additions and 2 deletions

View file

@ -215,7 +215,8 @@ static int module_ladspa_sink_prepare(struct module * const module)
if ((str = pw_properties_get(capture_props, PW_KEY_NODE_DESCRIPTION)) == NULL) { if ((str = pw_properties_get(capture_props, PW_KEY_NODE_DESCRIPTION)) == NULL) {
str = pw_properties_get(capture_props, PW_KEY_NODE_NAME); str = pw_properties_get(capture_props, PW_KEY_NODE_NAME);
pw_properties_setf(props, PW_KEY_NODE_DESCRIPTION, if (str != NULL)
pw_properties_setf(props, PW_KEY_NODE_DESCRIPTION,
"%s Sink", str); "%s Sink", str);
} else { } else {
pw_properties_set(props, PW_KEY_NODE_DESCRIPTION, str); pw_properties_set(props, PW_KEY_NODE_DESCRIPTION, str);

View file

@ -215,7 +215,8 @@ static int module_ladspa_source_prepare(struct module * const module)
if ((str = pw_properties_get(playback_props, PW_KEY_NODE_DESCRIPTION)) == NULL) { if ((str = pw_properties_get(playback_props, PW_KEY_NODE_DESCRIPTION)) == NULL) {
str = pw_properties_get(playback_props, PW_KEY_NODE_NAME); str = pw_properties_get(playback_props, PW_KEY_NODE_NAME);
pw_properties_setf(props, PW_KEY_NODE_DESCRIPTION, if (str != NULL)
pw_properties_setf(props, PW_KEY_NODE_DESCRIPTION,
"%s Source", str); "%s Source", str);
} else { } else {
pw_properties_set(props, PW_KEY_NODE_DESCRIPTION, str); pw_properties_set(props, PW_KEY_NODE_DESCRIPTION, str);