Revision c5b8e57a
Added by Jim Pingle over 2 years ago
src/etc/inc/interfaces.inc | ||
---|---|---|
753 | 753 |
|
754 | 754 |
function interface_bridge_configure_stp($bridge) { |
755 | 755 |
if (isset($bridge['enablestp'])) { |
756 |
$bridgeif = trim($bridge['bridgeif']);
|
|
756 |
$bridgeif = escapeshellarg(trim($bridge['bridgeif']));
|
|
757 | 757 |
/* configure spanning tree proto */ |
758 | 758 |
mwexec("/sbin/ifconfig {$bridgeif} proto " . escapeshellarg($bridge['proto'])); |
759 | 759 |
|
... | ... | |
811 | 811 |
} |
812 | 812 |
|
813 | 813 |
function interface_bridge_configure_advanced($bridge) { |
814 |
$bridgeif = trim($bridge['bridgeif']);
|
|
814 |
$bridgeif = escapeshellarg(trim($bridge['bridgeif']));
|
|
815 | 815 |
|
816 | 816 |
if ($bridge['maxaddr'] <> "") { |
817 | 817 |
mwexec("/sbin/ifconfig {$bridgeif} maxaddr " . escapeshellarg($bridge['maxaddr'])); |
... | ... | |
871 | 871 |
} |
872 | 872 |
|
873 | 873 |
function interface_bridge_configure_ip6linklocal($bridge) { |
874 |
$bridgeif = trim($bridge['bridgeif']);
|
|
874 |
$bridgeif = escapeshellarg(trim($bridge['bridgeif']));
|
|
875 | 875 |
|
876 | 876 |
$members = explode(',', $bridge['members']); |
877 | 877 |
if (!count($members)) { |
... | ... | |
884 | 884 |
|
885 | 885 |
mwexec("/usr/sbin/ndp -i {$bridgeif} -- {$bridgeop}auto_linklocal"); |
886 | 886 |
foreach ($members as $member) { |
887 |
$realif = get_real_interface($member);
|
|
887 |
$realif = escapeshellarg(get_real_interface($member));
|
|
888 | 888 |
mwexec("/usr/sbin/ndp -i {$realif} -- {$memberop}auto_linklocal"); |
889 | 889 |
} |
890 | 890 |
} |
src/usr/local/www/interfaces_bridge_edit.php | ||
---|---|---|
356 | 356 |
$bridge['autoptp'] = implode(',', $_POST['autoptp']); |
357 | 357 |
} |
358 | 358 |
|
359 |
$bridge['bridgeif'] = $_POST['bridgeif']; |
|
359 |
if (empty($_POST['bridgeif']) || |
|
360 |
preg_match("/^bridge[0-9]+$/", $_POST['bridgeif'])) { |
|
361 |
/* Attempt initial configuration of the bridge if the |
|
362 |
* submitted interface is empty or looks like a bridge |
|
363 |
* interface. */ |
|
364 |
$bridge['bridgeif'] = $_POST['bridgeif']; |
|
365 |
interface_bridge_configure($bridge); |
|
366 |
} else { |
|
367 |
$input_errors[] = gettext("Invalid bridge interface."); |
|
368 |
} |
|
360 | 369 |
|
361 |
interface_bridge_configure($bridge);
|
|
362 |
if ($bridge['bridgeif'] == "" || !stristr($bridge['bridgeif'], "bridge")) {
|
|
370 |
if (empty($bridge['bridgeif']) ||
|
|
371 |
!preg_match("/^bridge[0-9]+$/", $bridge['bridgeif'])) {
|
|
363 | 372 |
$input_errors[] = gettext("Error occurred creating interface, please retry."); |
364 | 373 |
} else { |
365 | 374 |
|
Also available in: Unified diff
Improve validation and escaping of bridge interfaces. Fixes #14052