summaryrefslogtreecommitdiffhomepage
path: root/modules/luci-base
diff options
context:
space:
mode:
authorGlenn Washburn <development@efficientek.com>2023-03-01 23:39:48 -0600
committerJo-Philipp Wich <jo@mein.io>2023-03-15 23:56:59 +0100
commit6ad6a241c32ebd4d62f6021a2e3cbe4e1bc192c2 (patch)
tree3adcf506c7f6b0139c2677c866421d41199af2ca /modules/luci-base
parent9c55500fe8efa309d55f34c21d5ae2bf69fabf06 (diff)
luci-mod-network: add stricter wireless interface name validation
Linux wireless interface names have the following restrictions: * It must not be an empty string * It must not be '.' or '..' * It must not contain any /, : or space character ( , \t, \n, ...) * It must be less than 16 chars * It likely must not contain any % either Fixes: 8673aef8db ("luci-mod-network: remove uciname validation from wireless interface") Signed-off-by: Glenn Washburn <development@efficientek.com> [reword validation error messages, remove extended description text as it would be shown as part of the validation errors] Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Diffstat (limited to 'modules/luci-base')
-rw-r--r--modules/luci-base/htdocs/luci-static/resources/validation.js9
1 files changed, 9 insertions, 0 deletions
diff --git a/modules/luci-base/htdocs/luci-static/resources/validation.js b/modules/luci-base/htdocs/luci-static/resources/validation.js
index 6dddf964fb..b7a3a140e4 100644
--- a/modules/luci-base/htdocs/luci-static/resources/validation.js
+++ b/modules/luci-base/htdocs/luci-static/resources/validation.js
@@ -426,6 +426,15 @@ var ValidatorFactory = baseclass.extend({
return this.assert(this.value.match(/^[a-zA-Z0-9_]+$/), _('valid UCI identifier'));
},
+ netdevname: function() {
+ var v = this.value;
+
+ if (v == '.' || v == '..')
+ return this.assert(false, _('valid network device name, not "." or ".."'));
+
+ return this.assert(v.match(/^[^:/%\s]{1,15}$/), _('valid network device name between 1 and 15 characters not containing ":", "/", "%" or spaces'));
+ },
+
range: function(min, max) {
var val = this.factory.parseDecimal(this.value);
return this.assert(val >= +min && val <= +max, _('value between %f and %f').format(min, max));