From 8972c57e4474e8d0b786430cd3dbbd8d4b21e948 Mon Sep 17 00:00:00 2001 From: Ad Schellevis Date: Wed, 25 Mar 2015 17:56:57 +0000 Subject: [PATCH] fix config handling on empty tags for dhcp / ipsec --- src/etc/inc/interfaces.inc | 8 ++++++-- src/etc/inc/services.inc | 4 ++-- src/www/vpn_ipsec.php | 4 ++++ src/www/vpn_ipsec_keys.php | 4 ++++ src/www/vpn_ipsec_keys_edit.php | 4 ++++ src/www/vpn_ipsec_mobile.php | 4 ++++ src/www/vpn_ipsec_phase1.php | 4 ++++ src/www/vpn_ipsec_phase2.php | 4 ++++ src/www/vpn_ipsec_settings.php | 4 ++++ 9 files changed, 36 insertions(+), 4 deletions(-) diff --git a/src/etc/inc/interfaces.inc b/src/etc/inc/interfaces.inc index ea867df22..ec1486c2b 100644 --- a/src/etc/inc/interfaces.inc +++ b/src/etc/inc/interfaces.inc @@ -5241,7 +5241,9 @@ function interfaces_staticarp_configure($if) if (is_array($config['dhcpd'][$if]['staticmap'])) { foreach ($config['dhcpd'][$if]['staticmap'] as $arpent) { - mwexec("/usr/sbin/arp -s " . escapeshellarg($arpent['ipaddr']) . " " . escapeshellarg($arpent['mac'])); + if (isset($arpent['ipaddr'])) { + mwexec("/usr/sbin/arp -s " . escapeshellarg($arpent['ipaddr']) . " " . escapeshellarg($arpent['mac'])); + } } @@ -5252,7 +5254,9 @@ function interfaces_staticarp_configure($if) if (isset($config['dhcpd'][$if]['staticmap'])) { foreach ($config['dhcpd'][$if]['staticmap'] as $arpent) { if (isset($arpent['arp_table_static_entry'])) { - mwexec("/usr/sbin/arp -s " . escapeshellarg($arpent['ipaddr']) . " " . escapeshellarg($arpent['mac'])); + if (isset($arpent['ipaddr'])) { + mwexec("/usr/sbin/arp -s " . escapeshellarg($arpent['ipaddr']) . " " . escapeshellarg($arpent['mac'])); + } } } } diff --git a/src/etc/inc/services.inc b/src/etc/inc/services.inc index 45222b3fd..a21975b55 100644 --- a/src/etc/inc/services.inc +++ b/src/etc/inc/services.inc @@ -496,7 +496,7 @@ EOPP; $all_pools = array(); $all_pools[] = $dhcpifconf; - if (is_array($dhcpifconf['pool'])) { + if (is_array($dhcpifconf['pool']) && isset($dhcpifconf['pool']['range']) ) { $all_pools = array_merge($all_pools, $dhcpifconf['pool']); } @@ -546,7 +546,7 @@ EOPP; /* Create classes - These all contain comma separated lists. Join them into one big comma separated string then split them all up. */ $all_mac_strings = array(); - if (is_array($dhcpifconf['pool'])) { + if (is_array($dhcpifconf['pool']) && isset($dhcpifconf['pool']['range']) ) { foreach($all_pools as $poolconf) { $all_mac_strings[] = $poolconf['mac_allow']; $all_mac_strings[] = $poolconf['mac_deny']; diff --git a/src/www/vpn_ipsec.php b/src/www/vpn_ipsec.php index 7e7664f5f..4971cafaf 100644 --- a/src/www/vpn_ipsec.php +++ b/src/www/vpn_ipsec.php @@ -34,6 +34,10 @@ require_once("shaper.inc"); require_once("ipsec.inc"); require_once("vpn.inc"); +if (!is_array($config['ipsec'])) { + $config['ipsec'] = array(); +} + if (!is_array($config['ipsec']['phase1'])) $config['ipsec']['phase1'] = array(); diff --git a/src/www/vpn_ipsec_keys.php b/src/www/vpn_ipsec_keys.php index f8d2c529f..c21716411 100644 --- a/src/www/vpn_ipsec_keys.php +++ b/src/www/vpn_ipsec_keys.php @@ -32,6 +32,10 @@ require_once("ipsec.inc"); require_once("vpn.inc"); require_once("filter.inc"); +if (!is_array($config['ipsec'])) { + $config['ipsec'] = array(); +} + if (!is_array($config['ipsec']['mobilekey'])) { $config['ipsec']['mobilekey'] = array(); } diff --git a/src/www/vpn_ipsec_keys_edit.php b/src/www/vpn_ipsec_keys_edit.php index 2e604544b..c340587f1 100644 --- a/src/www/vpn_ipsec_keys_edit.php +++ b/src/www/vpn_ipsec_keys_edit.php @@ -31,6 +31,10 @@ require_once("guiconfig.inc"); require_once("ipsec.inc"); require_once("vpn.inc"); +if (!is_array($config['ipsec'])) { + $config['ipsec'] = array(); +} + if (!is_array($config['ipsec']['mobilekey'])) { $config['ipsec']['mobilekey'] = array(); } diff --git a/src/www/vpn_ipsec_mobile.php b/src/www/vpn_ipsec_mobile.php index bbfa7a357..af363fe9d 100644 --- a/src/www/vpn_ipsec_mobile.php +++ b/src/www/vpn_ipsec_mobile.php @@ -31,6 +31,10 @@ require_once("guiconfig.inc"); require_once("ipsec.inc"); require_once("vpn.inc"); +if (!is_array($config['ipsec'])) { + $config['ipsec'] = array(); +} + if (!is_array($config['ipsec']['phase1'])) $config['ipsec']['phase1'] = array(); diff --git a/src/www/vpn_ipsec_phase1.php b/src/www/vpn_ipsec_phase1.php index bf039566a..b8f0feb86 100644 --- a/src/www/vpn_ipsec_phase1.php +++ b/src/www/vpn_ipsec_phase1.php @@ -33,6 +33,10 @@ require_once("guiconfig.inc"); require_once("ipsec.inc"); require_once("vpn.inc"); +if (!is_array($config['ipsec'])) { + $config['ipsec'] = array(); +} + if (!is_array($config['ipsec']['phase1'])) $config['ipsec']['phase1'] = array(); diff --git a/src/www/vpn_ipsec_phase2.php b/src/www/vpn_ipsec_phase2.php index 40729d1b2..6c4f27121 100644 --- a/src/www/vpn_ipsec_phase2.php +++ b/src/www/vpn_ipsec_phase2.php @@ -32,6 +32,10 @@ require_once("guiconfig.inc"); require_once("ipsec.inc"); require_once("vpn.inc"); +if (!is_array($config['ipsec'])) { + $config['ipsec'] = array(); +} + if (!is_array($config['ipsec']['client'])) $config['ipsec']['client'] = array(); diff --git a/src/www/vpn_ipsec_settings.php b/src/www/vpn_ipsec_settings.php index 7edfb9cb0..7b2b226b3 100644 --- a/src/www/vpn_ipsec_settings.php +++ b/src/www/vpn_ipsec_settings.php @@ -33,6 +33,10 @@ require_once("shaper.inc"); require_once("ipsec.inc"); require_once("vpn.inc"); +if (!is_array($config['ipsec'])) { + $config['ipsec'] = array(); +} + $pconfig['noinstalllanspd'] = $config['system']['noinstalllanspd']; $pconfig['preferoldsa_enable'] = isset($config['ipsec']['preferoldsa']); foreach ($ipsec_loglevels as $lkey => $ldescr) {