fix: WHITELIST_IPS validation and CSV load (2.3.1-SAC)
Parse whitelist from config via peek; validate IPv4 octets with BASH_REMATCH and 10# arithmetic.
This commit is contained in:
@@ -135,15 +135,17 @@ ssh_monitor_config_load_file() {
|
||||
|
||||
ssh_monitor_validate_ipv4() {
|
||||
local ip="$1" o
|
||||
[[ "$ip" =~ ^([0-9]{1,3}\.){3}[0-9]{1,3}$ ]] || return 1
|
||||
for o in ${ip//./ }; do
|
||||
[ "$o" -le 255 ] || return 1
|
||||
ip="$(_ssh_monitor_config_trim "$ip")"
|
||||
[[ "$ip" =~ ^([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$ ]] || return 1
|
||||
for o in "${BASH_REMATCH[1]}" "${BASH_REMATCH[2]}" "${BASH_REMATCH[3]}" "${BASH_REMATCH[4]}"; do
|
||||
((10#$o <= 255)) || return 1
|
||||
done
|
||||
return 0
|
||||
}
|
||||
|
||||
ssh_monitor_validate_cidr_v4() {
|
||||
local cidr="$1" net mask
|
||||
cidr="$(_ssh_monitor_config_trim "$cidr")"
|
||||
[[ "$cidr" == */* ]] || return 1
|
||||
net="${cidr%/*}"
|
||||
mask="${cidr#*/}"
|
||||
|
||||
Reference in New Issue
Block a user