summaryrefslogtreecommitdiffstats
path: root/etc/rc.initial.setlanip
diff options
context:
space:
mode:
authorRenato Botelho <garga@FreeBSD.org>2013-12-04 18:20:58 -0200
committerRenato Botelho <garga@FreeBSD.org>2013-12-04 18:21:30 -0200
commit21d74c8e79948cd05c11f0ab79a463aea4bff2ce (patch)
tree69de2ba5388c0bd1b3d8aa8eaa264561e9853a9b /etc/rc.initial.setlanip
parentf70a140fe18cb80012e53f82c268788fbcae5436 (diff)
downloadpfsense-21d74c8e79948cd05c11f0ab79a463aea4bff2ce.zip
pfsense-21d74c8e79948cd05c11f0ab79a463aea4bff2ce.tar.gz
Prevent network or broadcast address to be set on interface (console, GUI and wizard). It should fix #3196
Diffstat (limited to 'etc/rc.initial.setlanip')
-rwxr-xr-xetc/rc.initial.setlanip13
1 files changed, 12 insertions, 1 deletions
diff --git a/etc/rc.initial.setlanip b/etc/rc.initial.setlanip
index 14213b5..8273073 100755
--- a/etc/rc.initial.setlanip
+++ b/etc/rc.initial.setlanip
@@ -283,8 +283,19 @@ function console_configure_ip_address($version) {
echo "\n" . sprintf(gettext("Enter the new %s %s subnet bit count:"),
$upperifname, $label_IPvX) . "\n> ";
$intbits = chop(fgets($fp));
+ $intbits_ok = is_numeric($intbits) && (($intbits >= 1) || ($intbits <= $maxbits));
$restart_dhcpd = true;
- } while (!is_numeric($intbits) || ($intbits < 1) || ($intbits > $maxbits));
+
+ if ($version === 4 && $intbits < $maxbits) {
+ if ($intip == gen_subnet($intip, $intbits)) {
+ echo gettext("You cannot set network address to an interface");
+ $intbits_ok = false;
+ } else if ($intip == gen_subnet_max($intip, $intbits)) {
+ echo gettext("You cannot set broadcast address to an interface");
+ $intbits_ok = false;
+ }
+ }
+ } while (!$intbits_ok);
if ($version === 6) {
$subnet = gen_subnetv6($intip, $intbits);
OpenPOWER on IntegriCloud