Skip to content
Snippets Groups Projects
Commit 05f146f8 authored by Matthias Schiffer's avatar Matthias Schiffer
Browse files

Validate section names from site.conf in various packages

parent fddbc1df
No related branches found
No related tags found
No related merge requests found
need_string 'autoupdater.branch' need_string 'autoupdater.branch'
local function check_branch(k, _) local function check_branch(k, _)
assert_uci_name(k)
local prefix = string.format('autoupdater.branches[%q].', k) local prefix = string.format('autoupdater.branches[%q].', k)
need_string(prefix .. 'name') need_string(prefix .. 'name')
......
...@@ -6,6 +6,8 @@ need_boolean('fastd_mesh_vpn.configurable', false) ...@@ -6,6 +6,8 @@ need_boolean('fastd_mesh_vpn.configurable', false)
local function check_peer(prefix) local function check_peer(prefix)
return function(k, _) return function(k, _)
assert_uci_name(k)
local table = string.format('%s[%q].', prefix, k) local table = string.format('%s[%q].', prefix, k)
need_string(table .. 'key') need_string(table .. 'key')
...@@ -15,6 +17,8 @@ end ...@@ -15,6 +17,8 @@ end
local function check_group(prefix) local function check_group(prefix)
return function(k, _) return function(k, _)
assert_uci_name(k)
local table = string.format('%s[%q].', prefix, k) local table = string.format('%s[%q].', prefix, k)
need_number(table .. 'limit', false) need_number(table .. 'limit', false)
......
local function check_entry(k, _) local function check_entry(k, _)
assert_uci_name(k)
local prefix = string.format('simple_tc[%q].', k) local prefix = string.format('simple_tc[%q].', k)
need_string(prefix .. 'ifname') need_string(prefix .. 'ifname')
......
...@@ -12,6 +12,12 @@ local function assert_type(var, t, msg) ...@@ -12,6 +12,12 @@ local function assert_type(var, t, msg)
end end
function assert_uci_name(var)
-- We don't use character classes like %w here to be independent of the locale
assert(var:match('^[0-9a-zA-Z_]+$'), "site.conf error: `" .. var .. "' is not a valid config section name (only alphanumeric characters and the underscore are allowed)")
end
function need_string(varname, required) function need_string(varname, required)
local var = loadvar(varname) local var = loadvar(varname)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment