summaryrefslogtreecommitdiffstats
path: root/src/usr
diff options
context:
space:
mode:
authorPhil Davis <phil.davis@inf.org>2016-01-18 22:03:53 +0545
committerPhil Davis <phil.davis@inf.org>2016-01-18 22:03:53 +0545
commitf8bf3fe860c63b0a4f02093fe15e2874f8e52156 (patch)
treef7869aceab1bf2a533051e1a7dee4e3d0ef6cf4c /src/usr
parentb12cb9535d0822ebfbcb64e0c865864e1e079a68 (diff)
downloadpfsense-f8bf3fe860c63b0a4f02093fe15e2874f8e52156.zip
pfsense-f8bf3fe860c63b0a4f02093fe15e2874f8e52156.tar.gz
Fix #5778 do not save changes if interface description matches an alias name
See https://redmine.pfsense.org/issues/5778 for details of how to reproduce the problem. Note that similar code to make the "Sorry, an alias with the name XXX already exists" message is also at the top of interfaces.inc - it compares the current interface descr from the config with the currently existing alias names. That check would help warn the user if someone managed to add an alias name that matched the interface name. I guess it was there from some time in the past when the alias edit code did not cross-validate the alias name with the interface descriptions. I have left that check there - it does no harm to have it "just in case". The new code that I added checks the proposed interface description in $_POST against the existing alias names and will give an input_error if there is a match.
Diffstat (limited to 'src/usr')
-rw-r--r--src/usr/local/www/interfaces.php10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/usr/local/www/interfaces.php b/src/usr/local/www/interfaces.php
index 0d82dd5..f25bbeb 100644
--- a/src/usr/local/www/interfaces.php
+++ b/src/usr/local/www/interfaces.php
@@ -540,6 +540,16 @@ if ($_POST['apply']) {
break;
}
}
+
+ /* Is the description already used as an alias name? */
+ if (is_array($config['aliases']['alias'])) {
+ foreach ($config['aliases']['alias'] as $alias) {
+ if ($alias['name'] == $_POST['descr']) {
+ $input_errors[] = sprintf(gettext("Sorry, an alias with the name %s already exists."), $_POST['descr']);
+ }
+ }
+ }
+
if (is_numeric($_POST['descr'])) {
$input_errors[] = gettext("The interface description cannot contain only numbers.");
}
OpenPOWER on IntegriCloud