Browse Source

Validate section names from site.conf in various packages

Matthias Schiffer 8 years ago
parent
commit
05f146f817

+ 2 - 0
package/gluon-autoupdater/check_site.lua

@@ -1,6 +1,8 @@
 need_string 'autoupdater.branch'
 
 local function check_branch(k, _)
+   assert_uci_name(k)
+
    local prefix = string.format('autoupdater.branches[%q].', k)
 
    need_string(prefix .. 'name')

+ 4 - 0
package/gluon-mesh-vpn-fastd/check_site.lua

@@ -6,6 +6,8 @@ need_boolean('fastd_mesh_vpn.configurable', false)
 
 local function check_peer(prefix)
   return function(k, _)
+    assert_uci_name(k)
+
     local table = string.format('%s[%q].', prefix, k)
 
     need_string(table .. 'key')
@@ -15,6 +17,8 @@ end
 
 local function check_group(prefix)
   return function(k, _)
+    assert_uci_name(k)
+
     local table = string.format('%s[%q].', prefix, k)
 
     need_number(table .. 'limit', false)

+ 2 - 0
package/gluon-simple-tc/check_site.lua

@@ -1,4 +1,6 @@
 local function check_entry(k, _)
+   assert_uci_name(k)
+
    local prefix = string.format('simple_tc[%q].', k)
 
    need_string(prefix .. 'ifname')

+ 6 - 0
scripts/check_site_lib.lua

@@ -12,6 +12,12 @@ local function assert_type(var, t, msg)
 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)
    local var = loadvar(varname)