diff options
author | Jo-Philipp Wich <jow@openwrt.org> | 2011-12-16 06:05:51 +0000 |
---|---|---|
committer | Jo-Philipp Wich <jow@openwrt.org> | 2011-12-16 06:05:51 +0000 |
commit | 375a476d27afae5c978b48a555fe32c94e2cf854 (patch) | |
tree | 5e0ee2f0a3b491a6c16417f26faf3f94f31e8564 /libs/web | |
parent | 3a0905f21cb1afe307402cb8ea1d89096f28c141 (diff) |
libs/web: rework hostname match to not allow arbritary sequences of numbers and dots
Diffstat (limited to 'libs/web')
-rw-r--r-- | libs/web/htdocs/luci-static/resources/cbi.js | 7 | ||||
-rw-r--r-- | libs/web/luasrc/cbi/datatypes.lua | 7 |
2 files changed, 8 insertions, 6 deletions
diff --git a/libs/web/htdocs/luci-static/resources/cbi.js b/libs/web/htdocs/luci-static/resources/cbi.js index 8d32b669d1..e932dac1d0 100644 --- a/libs/web/htdocs/luci-static/resources/cbi.js +++ b/libs/web/htdocs/luci-static/resources/cbi.js @@ -153,8 +153,9 @@ var cbi_validators = { 'hostname': function(v) { if (v.length <= 253) - return (v.match(/^[a-zA-Z0-9]+$/) != null || - v.match(/^[a-zA-Z0-9][a-zA-Z0-9\-.]*[a-zA-Z0-9]$/) != null); + return (v.match(/^[a-zA-Z]+$/) != null || + (v.match(/^[a-zA-Z0-9][a-zA-Z0-9\-.]*[a-zA-Z0-9]$/) && + v.match(/[^0-9.]/))); return false; }, @@ -191,7 +192,7 @@ var cbi_validators = { 'neg_network_ip4addr': function(v) { v = v.replace(/^\s*!/, ""); - return cbi_validators.uciname(v) || cbi_validators.ip4addr(v); + return cbi_validators.uciname(v) || cbi_validators.ip4addr(v); }, 'range': function(v, args) diff --git a/libs/web/luasrc/cbi/datatypes.lua b/libs/web/luasrc/cbi/datatypes.lua index 9a3b735008..65a8eedeb1 100644 --- a/libs/web/luasrc/cbi/datatypes.lua +++ b/libs/web/luasrc/cbi/datatypes.lua @@ -142,8 +142,9 @@ end function hostname(val) if val and (#val < 254) and ( - val:match("^[a-zA-Z0-9]+$") or - val:match("^[a-zA-Z0-9][a-zA-Z0-9%-%.]*[a-zA-Z0-9]$") + val:match("^[a-zA-Z]+$") or + (val:match("^[a-zA-Z0-9][a-zA-Z0-9%-%.]*[a-zA-Z0-9]$") and + val:match("[^0-9%.]")) ) then return true end @@ -238,7 +239,7 @@ function neg_network_ip4addr(val) if type(v) == "string" then v = v:gsub("^%s*!", "") return (uciname(v) or ip4addr(v)) - end + end end function range(val, min, max) |