Software /
code /
prosody
Changeset
10375:3d0adbc74c39
core.configmanager: Handle nameprep validation errors
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Sat, 02 Nov 2019 13:56:13 +0100 |
parents | 10374:a83233559253 |
children | 10376:b337df192a10 |
files | core/configmanager.lua |
diffstat | 1 files changed, 10 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/core/configmanager.lua Sat Nov 02 13:55:38 2019 +0100 +++ b/core/configmanager.lua Sat Nov 02 13:56:13 2019 +0100 @@ -141,7 +141,11 @@ if not name then error("Host must have a name", 2); end - name = nameprep(name); + local prepped_name = nameprep(name); + if not prepped_name then + error(format("Name of Host %q contains forbidden characters", name), 0); + end + name = prepped_name; if rawget(config_table, name) and rawget(config_table[name], "component_module") then error(format("Host %q clashes with previously defined %s Component %q, for services use a sub-domain like conference.%s", name, config_table[name].component_module:gsub("^%a+$", { component = "external", muc = "MUC"}), name, name), 0); @@ -162,7 +166,11 @@ if not name then error("Component must have a name", 2); end - name = nameprep(name); + local prepped_name = nameprep(name); + if not prepped_name then + error(format("Name of Component %q contains forbidden characters", name), 0); + end + name = prepped_name; if rawget(config_table, name) and rawget(config_table[name], "defined") and not rawget(config_table[name], "component_module") then error(format("Component %q clashes with previously defined Host %q, for services use a sub-domain like conference.%s",