diff options
author | Seth Mos <seth.mos@xs4all.nl> | 2009-11-28 00:43:01 +0100 |
---|---|---|
committer | Seth Mos <seth.mos@xs4all.nl> | 2009-11-28 00:43:01 +0100 |
commit | e7d3b8f4b8aa428882dd1f955027af8580690010 (patch) | |
tree | 5a749d1d3b8070f2085d999b9d13e8f3d5486bdd | |
parent | e489f87d99bbbc88a7eddf4a53f8db24490d685c (diff) | |
download | pfsense-e7d3b8f4b8aa428882dd1f955027af8580690010.zip pfsense-e7d3b8f4b8aa428882dd1f955027af8580690010.tar.gz |
Add input validation to check if the gateway IP is in the local subnet for that interface.
Needs testing, no idea if this works for ppp or pppoe interfaces.
-rwxr-xr-x | usr/local/www/system_gateways_edit.php | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/usr/local/www/system_gateways_edit.php b/usr/local/www/system_gateways_edit.php index 6c192a8..c3aabb6 100755 --- a/usr/local/www/system_gateways_edit.php +++ b/usr/local/www/system_gateways_edit.php @@ -93,6 +93,11 @@ if ($_POST) { if ($_POST['gateway'] && (!is_ipaddr($_POST['gateway'])) && ($pconfig['attribute'] != "system")) { $input_errors[] = "A valid gateway IP address must be specified."; } + if ($_POST['gateway'] && (is_ipaddr($_POST['gateway'])) && ($pconfig['attribute'] != "system")) { + if(! ip_in_subnet($_POST['gateway']), get_interface_subnet($interface)) { + $input_errors[] = "The Address {$_POST['gateway']} does not lie in the interface subnet"; + } + } if ((($_POST['monitor'] <> "") && !is_ipaddr($_POST['monitor']))) { $input_errors[] = "A valid monitor IP address must be specified."; } |