From 20c77336407dc7b3a643ce1422260897a1262e1b Mon Sep 17 00:00:00 2001 From: George Kiagiadakis <george.kiagiadakis@collabora.com> Date: Thu, 18 Feb 2021 09:02:41 +0200 Subject: [PATCH] monitors: sanitize node descriptions too https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/aea79cd79ca0f08fe6aae566d23bbf972e27092f --- src/scripts/monitors/alsa.lua | 15 ++++++++------- src/scripts/monitors/bluez.lua | 4 +++- src/scripts/monitors/v4l2.lua | 5 +++-- 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/src/scripts/monitors/alsa.lua b/src/scripts/monitors/alsa.lua index a81d7693..a417cb4d 100644 --- a/src/scripts/monitors/alsa.lua +++ b/src/scripts/monitors/alsa.lua @@ -134,8 +134,8 @@ function createNode(parent, id, type, factory, properties) or dev_props["device.nick"] or dev_props["api.alsa.card.name"] or dev_props["alsa.card_name"] - -- also sanitize nick, but allow all characters except : - properties["node.nick"] = nick:gsub("(:)", "_") + -- also sanitize nick, replace ':' with ' ' + properties["node.nick"] = nick:gsub("(:)", " ") -- ensure the node has a description if not properties["node.description"] then @@ -143,14 +143,15 @@ function createNode(parent, id, type, factory, properties) local name = properties["api.alsa.pcm.name"] or properties["api.alsa.pcm.id"] or dev if profile_desc then - properties["node.description"] = desc .. " " .. profile_desc + desc = desc .. " " .. profile_desc elseif subdev == "0" then - properties["node.description"] = desc .. " (" .. name .. " " .. subdev .. ")" + desc = desc .. " (" .. name .. " " .. subdev .. ")" elseif dev == "0" then - properties["node.description"] = desc .. " (" .. name .. ")" - else - properties["node.description"] = desc + desc = desc .. " (" .. name .. ")" end + + -- also sanitize description, replace ':' with ' ' + properties["node.description"] = desc:gsub("(:)", " ") end -- apply properties from config.rules diff --git a/src/scripts/monitors/bluez.lua b/src/scripts/monitors/bluez.lua index c6c1f00b..9adb8693 100644 --- a/src/scripts/monitors/bluez.lua +++ b/src/scripts/monitors/bluez.lua @@ -48,12 +48,14 @@ function createNode(parent, id, type, factory, properties) properties["node.pause-on-idle"] = false -- set the node description - properties["node.description"] = + local desc = dev_props["device.description"] or dev_props["device.name"] or dev_props["device.nick"] or dev_props["device.alias"] or "bluetooth-device" + -- sanitize description, replace ':' with ' ' + properties["node.description"] = desc:gsub("(:)", " ") -- set the node name local name = diff --git a/src/scripts/monitors/v4l2.lua b/src/scripts/monitors/v4l2.lua index cfc4d230..84578fa8 100644 --- a/src/scripts/monitors/v4l2.lua +++ b/src/scripts/monitors/v4l2.lua @@ -67,7 +67,6 @@ function createNode(parent, id, type, factory, properties) dev_props["device.nick"] or dev_props["device.alias"] or "v4l2-device") - -- sanitize name name = name:gsub("([^%w_%-%.])", "_") @@ -83,7 +82,9 @@ function createNode(parent, id, type, factory, properties) end -- set the node description - properties["node.description"] = dev_props["device.description"] or "v4l2-device" + local desc = dev_props["device.description"] or "v4l2-device" + -- sanitize description, replace ':' with ' ' + properties["node.description"] = desc:gsub("(:)", " ") -- apply properties from config.rules rulesApplyProperties(properties) -- GitLab