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:
PTah
2026-07-08 13:03:40 +10:00
parent 18a65078fc
commit 05733d7402
4 changed files with 30 additions and 7 deletions
+5 -3
View File
@@ -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#*/}"