applications/luci-splash: Add a filter for arguments, only allow valid mac and ip addresses

This commit is contained in:
Manuel Munz 2013-10-16 19:48:23 +00:00
parent b8fe93a836
commit e966cfea23

View file

@ -106,6 +106,26 @@ function get_filter_handle(parent, direction, device, mac)
return handle
end
function macvalid(mac)
if mac and mac:match(
"^[a-fA-F0-9][a-fA-F0-9]:[a-fA-F0-9][a-fA-F0-9]:" ..
"[a-fA-F0-9][a-fA-F0-9]:[a-fA-F0-9][a-fA-F0-9]:" ..
"[a-fA-F0-9][a-fA-F0-9]:[a-fA-F0-9][a-fA-F0-9]$"
) then
return true
end
return false
end
function ipvalid(ipaddr)
if ipaddr then
return ip.IPv4(ipaddr) and true or false
end
return false
end
function main(argv)
local cmd = table.remove(argv, 1)
local arg = argv[1]
@ -116,6 +136,12 @@ function main(argv)
if ( cmd == "lease" or cmd == "add-rules" or cmd == "remove" or
cmd == "whitelist" or cmd == "blacklist" or cmd == "status" ) and #argv > 0
then
if not (macvalid(arg) or ipvalid(arg)) then
print("Invalid argument. The second argument must " ..
"be a valid IPv4 or Mac Address.")
os.exit(1)
end
lock()
local arp_cache = net.arptable()