2
0
mirror of https://github.com/xcat2/xcat-core.git synced 2026-08-28 01:26:41 +00:00

fix(genesis): validate generated network state

This commit is contained in:
Vinícius Ferrão
2026-08-20 23:06:55 -03:00
parent 0f2bb7a7fb
commit 88f1779aec
@@ -84,6 +84,15 @@ netmask_to_prefix() {
printf '%s\n' "$prefix"
}
validate_state_value() {
local name=$1 value=$2
[[ $value =~ ^[][A-Za-z0-9._,:/%+-]*$ ]] \
|| fail_network UNSAFE_NETWORK_STATE \
"Unsafe value returned for $name" \
'Check DHCP, routing, and resolver data from the management network'
}
destination=
boot_mac=
host_ip=
@@ -301,6 +310,19 @@ mac_address=
|| read -r mac_address <"$sys_class_net/$selected_interface/address"
verified_seconds=$(genesis_uptime_seconds "$uptime_file")
validate_state_value XCATDEST "$destination"
validate_state_value XCATMASTER "$master"
validate_state_value XCATPORT "$port"
validate_state_value XCAT_INTERFACE "$selected_interface"
validate_state_value XCAT_SOURCE_ADDRESS "$source_address"
validate_state_value XCAT_SOURCE_PREFIXED_ADDRESS "$source_prefixed_address"
validate_state_value XCAT_GATEWAY "$actual_gateway"
validate_state_value XCAT_DNS_SERVERS "$dns_servers"
validate_state_value XCAT_NETWORK_METHOD "$network_method"
validate_state_value XCAT_LINK_STATE "$link_state"
validate_state_value XCAT_MAC_ADDRESS "$mac_address"
validate_state_value XCAT_VERIFIED_SECONDS "$verified_seconds"
mkdir -p "$state_dir"
chmod 0755 "$state_dir"
umask 077