diff options
author | Chris Buechler <cmb@pfsense.org> | 2016-07-08 21:52:39 -0500 |
---|---|---|
committer | Chris Buechler <cmb@pfsense.org> | 2016-07-08 21:52:39 -0500 |
commit | f8f8d1316cf3e5d1dceb8c262ebefd548dc777a2 (patch) | |
tree | 74ed97497b91fef7dbfb57c6d82af4a182afda96 | |
parent | a018cc36a3e953fe790e0ba5dd4faaee10678842 (diff) | |
download | pfsense-f8f8d1316cf3e5d1dceb8c262ebefd548dc777a2.zip pfsense-f8f8d1316cf3e5d1dceb8c262ebefd548dc777a2.tar.gz |
Verify a valid IPv6 subnet is going to be used before including in radvd's config. Ticket #6581
-rw-r--r-- | src/etc/inc/services.inc | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/etc/inc/services.inc b/src/etc/inc/services.inc index f6fcf31..ce687e3 100644 --- a/src/etc/inc/services.inc +++ b/src/etc/inc/services.inc @@ -131,6 +131,10 @@ function services_radvd_configure($blacklist = array()) { $ifcfgsnv6 = get_interface_subnetv6($dhcpv6if); $subnetv6 = gen_subnetv6($ifcfgipv6, $ifcfgsnv6); + if (!is_subnetv6($subnetv6 . "/" . $ifcfgsnv6)) { + log_error("radvd: skipping configuration for interface $dhcpv6if because its subnet or prefix length is invalid."); + continue; + } $radvdifs[$realif] = $realif; $radvdconf .= "# Generated for DHCPv6 Server $dhcpv6if\n"; @@ -342,7 +346,7 @@ function services_radvd_configure($blacklist = array()) { $radvdconf .= "\tAdvLinkMTU 1280;\n"; } $radvdconf .= "\tAdvOtherConfigFlag on;\n"; - $radvdconf .= "\t\tprefix {$subnetv6}/{$ifcfgsnv6} {\n"; + $radvdconf .= "\tprefix {$subnetv6}/{$ifcfgsnv6} {\n"; $radvdconf .= "\t\tAdvOnLink on;\n"; $radvdconf .= "\t\tAdvAutonomous on;\n"; $radvdconf .= "\t\tAdvRouterAddr on;\n"; |