diff options
author | Glenn Washburn <development@efficientek.com> | 2023-03-01 23:39:48 -0600 |
---|---|---|
committer | Jo-Philipp Wich <jo@mein.io> | 2023-03-15 23:56:59 +0100 |
commit | 6ad6a241c32ebd4d62f6021a2e3cbe4e1bc192c2 (patch) | |
tree | 3adcf506c7f6b0139c2677c866421d41199af2ca /modules/luci-base | |
parent | 9c55500fe8efa309d55f34c21d5ae2bf69fabf06 (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.js | 9 |
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)); |