summaryrefslogtreecommitdiffstats
path: root/etc
diff options
context:
space:
mode:
authorErmal <eri@pfsense.org>2011-07-27 17:39:57 +0000
committerErmal <eri@pfsense.org>2011-07-27 17:40:13 +0000
commit1fb8d3140624206d6c455f9247a2f1671c23c26c (patch)
tree80e0400790a4c35ade803871866b0fc1f4b85523 /etc
parent4cf82d52943b00c2710b7867387230a0e58225be (diff)
downloadpfsense-1fb8d3140624206d6c455f9247a2f1671c23c26c.zip
pfsense-1fb8d3140624206d6c455f9247a2f1671c23c26c.tar.gz
Prevent php from coring if the wrong parameters are passed to ip2long
Diffstat (limited to 'etc')
-rw-r--r--etc/inc/filter.inc13
-rw-r--r--etc/inc/vpn.inc5
2 files changed, 15 insertions, 3 deletions
diff --git a/etc/inc/filter.inc b/etc/inc/filter.inc
index c575adc..bf5f296 100644
--- a/etc/inc/filter.inc
+++ b/etc/inc/filter.inc
@@ -1402,7 +1402,10 @@ function filter_nat_rules_generate() {
}
/* PPTP subnet */
if(($config['pptpd']['mode'] == "server" ) && is_private_ip($config['pptpd']['remoteip'])) {
- $pptp_subnets = ip_range_to_subnet_array($config['pptpd']['remoteip'], long2ip32(ip2long($config['pptpd']['remoteip'])+($config['pptpd']['n_pptp_units']-1)));
+ if (isset($config['pptpd']['n_pptp_units']) && is_numeric($config['pptpd']['n_pptp_units']))
+ $pptp_subnets = ip_range_to_subnet_array($config['pptpd']['remoteip'], long2ip32(ip2long($config['pptpd']['remoteip'])+($config['pptpd']['n_pptp_units']-1)));
+ else
+ $pptp_subnets = ip_range_to_subnet_array($config['pptpd']['remoteip'], long2ip32(ip2long($config['pptpd']['remoteip'])));
$numberofnathosts += count($pptp_subnets);
$tonathosts .= implode(" ", $pptp_subnets) . " ";
}
@@ -1765,9 +1768,13 @@ function filter_generate_address(& $rule, $target = "source", $isnat = false) {
$src = "{$lansa}/{$lansn}";
break;
case 'pptp':
- $pptp_subnets = ip_range_to_subnet_array($config['pptpd']['remoteip'], long2ip32(ip2long($config['pptpd']['remoteip'])+($config['pptpd']['n_pptp_units']-1)));
+ if (isset($config['pptpd']['n_pptp_units']) && is_numeric($config['pptpd']['n_pptp_units']))
+ $pptp_subnets = ip_range_to_subnet_array($config['pptpd']['remoteip'], long2ip32(ip2long($config['pptpd']['remoteip'])+($config['pptpd']['n_pptp_units']-1)));
+ else
+ $pptp_subnets = ip_range_to_subnet_array($config['pptpd']['remoteip'], long2ip32(ip2long($config['pptpd']['remoteip'])));
+ if (empty($pptp_subnets))
+ return "";
$src = "{ " . implode(" ", $pptp_subnets) . " }";
- $src = "{$pptpsa}/{$pptpsn}";
break;
case 'pppoe':
/* XXX: This needs to be fixed somehow! */
diff --git a/etc/inc/vpn.inc b/etc/inc/vpn.inc
index 128f403..94af6e2 100644
--- a/etc/inc/vpn.inc
+++ b/etc/inc/vpn.inc
@@ -1036,6 +1036,11 @@ function vpn_pptpd_configure() {
unlink_if_exists("{$g['varetc_path']}/pptp-vpn/mpd.secret");
}
+ if (empty($pptpdcfg['n_pptp_units'])) {
+ log_error("Something wrong in the PPTPd configuration. Preventing starting the daemon because issues would arise.");
+ return;
+ }
+
/* make sure pptp-vpn directory exists */
if (!file_exists("{$g['varetc_path']}/pptp-vpn"))
mkdir("{$g['varetc_path']}/pptp-vpn");
OpenPOWER on IntegriCloud