diff options
author | Renato Botelho <garga@FreeBSD.org> | 2013-02-21 15:18:33 -0300 |
---|---|---|
committer | Renato Botelho <garga@FreeBSD.org> | 2013-02-21 15:18:33 -0300 |
commit | 95540233e3b9d8c4be5616065edcc6e1f2e2f972 (patch) | |
tree | 51d3b2e7201bdb9a604089f42cc38c0e016896fc | |
parent | ef88e1e1d8fe8cb5ba441bbf2354a5caf0f2e1fb (diff) | |
download | pfsense-95540233e3b9d8c4be5616065edcc6e1f2e2f972.zip pfsense-95540233e3b9d8c4be5616065edcc6e1f2e2f972.tar.gz |
Do not allow bridge members to be assigned to itself. Fixes #1153
-rwxr-xr-x | usr/local/www/interfaces_assign.php | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/usr/local/www/interfaces_assign.php b/usr/local/www/interfaces_assign.php index 31d9b58..18a5ab8 100755 --- a/usr/local/www/interfaces_assign.php +++ b/usr/local/www/interfaces_assign.php @@ -199,6 +199,19 @@ if ($_POST['apply']) { $errstr .= " " . $ifn; $input_errors[] = $errstr; + } else if (count($ifnames) == 1 && preg_match('/^bridge[0-9]/', $portname) && is_array($config['bridges']['bridged']) && count($config['bridges']['bridged'])) { + foreach ($config['bridges']['bridged'] as $bridge) { + if ($bridge['bridgeif'] != $portname) + continue; + + $members = explode(",", strtoupper($bridge['members'])); + foreach ($members as $member) { + if ($member == $ifnames[0]) { + $input_errors[] = sprintf(gettext("You cannot set port %s to interface %s because this interface is a member of %s."), $portname, $member, $portname); + break; + } + } + } } } |