diff --git a/src/etc/inc/filter.inc b/src/etc/inc/filter.inc index 77a88a9220..39c79dbcf6 100644 --- a/src/etc/inc/filter.inc +++ b/src/etc/inc/filter.inc @@ -1241,7 +1241,7 @@ function filter_generate_optcfg_array() { $FilterIflist['openvpn'] = $oic; } /* add interface groups */ - if (is_array($config['ifgroups']['ifgroupentry'])) { + if (isset($config['ifgroups']['ifgroupentry']) && is_array($config['ifgroups']['ifgroupentry'])) { foreach ($config['ifgroups']['ifgroupentry'] as $ifgen) { $oc = array(); $oc['if'] = $ifgen['ifname']; @@ -3490,7 +3490,7 @@ EOD; $tracker = $saved_tracker; $isbridged = false; - if (is_array($config['bridges']['bridged'])) { + if (isset($config['bridges']['bridged']) && is_array($config['bridges']['bridged'])) { foreach ($config['bridges']['bridged'] as $oc2) { if (stristr($oc2['members'], $on)) { $isbridged = true; diff --git a/src/etc/inc/interfaces.inc b/src/etc/inc/interfaces.inc index dde20276ea..2681390867 100644 --- a/src/etc/inc/interfaces.inc +++ b/src/etc/inc/interfaces.inc @@ -677,7 +677,7 @@ function interfaces_bridge_configure($checkmember = 0, $realif = "") { global $config; $i = 0; - if (is_array($config['bridges']['bridged']) && count($config['bridges']['bridged'])) { + if (isset($config['bridges']['bridged']) && is_array($config['bridges']['bridged']) && count($config['bridges']['bridged'])) { foreach ($config['bridges']['bridged'] as $bridge) { if (empty($bridge['bridgeif'])) { $bridge['bridgeif'] = "bridge{$i}"; @@ -5267,7 +5267,7 @@ function DHCP_Config_File_Substitutions($ifcfg, $realif, $dhclientconf) { function interfaces_group_setup() { global $config; - if (!is_array($config['ifgroups']['ifgroupentry'])) { + if (!isset($config['ifgroups']['ifgroupentry']) || !is_array($config['ifgroups']['ifgroupentry'])) { return; } @@ -5298,7 +5298,7 @@ function interface_group_setup(&$groupname /* The parameter is an array */) { function is_interface_group($if) { global $config; - if (is_array($config['ifgroups']['ifgroupentry'])) { + if (isset($config['ifgroups']['ifgroupentry']) && is_array($config['ifgroups']['ifgroupentry'])) { foreach ($config['ifgroups']['ifgroupentry'] as $groupentry) { if ($groupentry['ifname'] === $if) { return true; @@ -5421,7 +5421,7 @@ function convert_friendly_interface_to_friendly_descr($interface) { } else if (substr($interface, 0, 5) == '_lloc') { return get_interface_linklocal($interface); } else { - if (is_array($config['ifgroups']['ifgroupentry'])) { + if (isset($config['ifgroups']['ifgroupentry']) && is_array($config['ifgroups']['ifgroupentry'])) { foreach ($config['ifgroups']['ifgroupentry'] as $ifgen) { if ($ifgen['ifname'] === $interface) { return $ifgen['ifname']; @@ -6006,7 +6006,7 @@ function link_interface_to_vips($int, $action = "", $vhid = '') { function link_interface_to_bridge($int) { global $config; - if (is_array($config['bridges']['bridged'])) { + if (isset($config['bridges']['bridged']) && is_array($config['bridges']['bridged'])) { foreach ($config['bridges']['bridged'] as $bridge) { if (in_array($int, explode(',', $bridge['members']))) { return "{$bridge['bridgeif']}"; @@ -6020,7 +6020,7 @@ function link_interface_to_group($int) { $result = array(); - if (is_array($config['ifgroups']['ifgroupentry'])) { + if (isset($config['ifgroups']['ifgroupentry']) && is_array($config['ifgroups']['ifgroupentry'])) { foreach ($config['ifgroups']['ifgroupentry'] as $group) { if (in_array($int, explode(" ", $group['members']))) { $result[$group['ifname']] = $int; @@ -7065,7 +7065,7 @@ function create_interface_list() { $iflist = array(); // add group interfaces - if (is_array($config['ifgroups']['ifgroupentry'])) { + if (isset($config['ifgroups']['ifgroupentry']) && is_array($config['ifgroups']['ifgroupentry'])) { foreach ($config['ifgroups']['ifgroupentry'] as $ifgen) { if (have_ruleint_access($ifgen['ifname'])) { $iflist[$ifgen['ifname']] = $ifgen['ifname']; diff --git a/src/etc/inc/service-utils.inc b/src/etc/inc/service-utils.inc index e3d9fdd976..ab145f82da 100644 --- a/src/etc/inc/service-utils.inc +++ b/src/etc/inc/service-utils.inc @@ -83,7 +83,7 @@ function start_service($name, $after_sync = false) { if (is_array($config['installedpackages']) && is_array($config['installedpackages']['service'])) { foreach ($config['installedpackages']['service'] as $service) { - if (strtolower($service['name']) == strtolower($name)) { + if (isset($service['name']) && (strtolower($service['name']) == strtolower($name))) { /* Avoid starting twice if this is called just after a * package sync which starts the service itself. */ if ($after_sync && isset($service['starts_on_sync'])) { @@ -207,7 +207,7 @@ function is_service_running($service, $ps = "") { if (is_array($config['installedpackages']['service'])) { foreach ($config['installedpackages']['service'] as $aservice) { - if (strtolower($service) == strtolower($aservice['name'])) { + if (isset($aservice['name']) && (strtolower($service) == strtolower($aservice['name']))) { if ($aservice['custom_php_service_status_command'] <> "") { eval("\$rc={$aservice['custom_php_service_status_command']};"); return $rc; diff --git a/src/etc/inc/services.inc b/src/etc/inc/services.inc index 8fc5309f2c..832ada3fdd 100644 --- a/src/etc/inc/services.inc +++ b/src/etc/inc/services.inc @@ -911,7 +911,7 @@ EOPP; // Handle pool-specific options $dhcpdconf .= "\n"; // Ignore the first pool, which is the "overall" pool when $all_pools_idx is 0 - those are put outside the pool block later - if ($poolconf['numberoptions']['item'] && ($all_pools_idx > 0)) { + if (isset($poolconf['numberoptions']['item']) && is_array($poolconf['numberoptions']['item']) && ($all_pools_idx > 0)) { // Use the "real" pool index from the config, excluding the "overall" pool, and based from 0. // This matches the way $poolidx was used when generating the $custoptions string earlier. $poolidx = $all_pools_idx - 1; @@ -1033,7 +1033,7 @@ EOD; // Handle option, number rowhelper values $dhcpdconf .= "\n"; - if ($dhcpifconf['numberoptions']['item']) { + if (isset($dhcpifconf['numberoptions']['item']) && is_array($dhcpifconf['numberoptions']['item'])) { foreach ($dhcpifconf['numberoptions']['item'] as $itemidx => $item) { $item_value = base64_decode($item['value']); if (empty($item['type']) || $item['type'] == "text") { @@ -1519,7 +1519,7 @@ EOD; // Handle option, number rowhelper values $dhcpdv6conf .= "\n"; - if ($dhcpv6ifconf['numberoptions']['item']) { + if (isset($dhcpv6ifconf['numberoptions']['item']) && is_array($dhcpv6ifconf['numberoptions']['item'])) { foreach ($dhcpv6ifconf['numberoptions']['item'] as $itemv6idx => $itemv6) { $itemv6_value = base64_decode($itemv6['value']); $dhcpdv6conf .= " option custom-{$dhcpv6if}-{$itemv6idx} \"{$itemv6_value}\";\n"; @@ -1903,7 +1903,11 @@ function services_dyndns_configure($int = "") { echo "services_dyndns_configure() being called $mt\n"; } - $dyndnscfg = $config['dyndnses']['dyndns']; + if (isset($config['dyndnses']['dyndns']) && is_array($config['dyndnses']['dyndns'])) { + $dyndnscfg = $config['dyndnses']['dyndns']; + } else { + return 0; + } $gwgroups = return_gateway_groups_array(true); if (is_array($dyndnscfg)) { if (platform_booting()) { diff --git a/src/usr/local/www/head.inc b/src/usr/local/www/head.inc index 0e7a3a7c6f..c632b6a9e0 100644 --- a/src/usr/local/www/head.inc +++ b/src/usr/local/www/head.inc @@ -154,9 +154,9 @@ function return_ext_menu($section) { if ((!empty($config['installedpackages']['package'])) && (!empty($config['installedpackages']['menu']))) { foreach ($config['installedpackages']['menu'] as $menu) { - if ($menu['name'] != "AutoConfigBackup") { // AutoConfigBackup was moved to a built-in function + if (isset($menu['name']) && ($menu['name'] != "AutoConfigBackup")) { // AutoConfigBackup was moved to a built-in function // print('Name: ' . $menu['name'] . ', Pkg category: ' . $menu['category'] . ', Section: ' . $section . '
'); - if ($menu['section'] == $section) { + if (isset($menu['section']) && ($menu['section'] == $section)) { $ext_menu_entries[] = $menu; } } diff --git a/src/usr/local/www/widgets/widgets/dyn_dns_status.widget.php b/src/usr/local/www/widgets/widgets/dyn_dns_status.widget.php index 2834913d1c..a66f499004 100644 --- a/src/usr/local/www/widgets/widgets/dyn_dns_status.widget.php +++ b/src/usr/local/www/widgets/widgets/dyn_dns_status.widget.php @@ -30,38 +30,25 @@ require_once("/usr/local/www/widgets/include/dyn_dns_status.inc"); // Constructs a unique key that will identify a Dynamic DNS entry in the filter list. if (!function_exists('get_dyndnsent_key')) { function get_dyndnsent_key($dyndns) { - return $dyndns['id']; + return isset($dyndns['id']) ? $dyndns['id'] : null; } } if (!function_exists('get_dyndns_hostname_text')) { function get_dyndns_hostname_text($dyndns) { global $dyndns_split_domain_types; - if (in_array($dyndns['type'], $dyndns_split_domain_types)) { + if (isset($dyndns['type']) && is_array($dyndns['type']) && in_array($dyndns['type'], $dyndns_split_domain_types)) { return $dyndns['host'] . "." . $dyndns['domainname']; } - return $dyndns['host']; + return isset($dyndns['host']) ? $dyndns['host'] : null; } } -if (!is_array($config['dyndnses'])) { - $config['dyndnses'] = array(); -} - -if (!is_array($config['dyndnses']['dyndns'])) { - $config['dyndnses']['dyndns'] = array(); -} - +init_config_arr(array('dyndnses', 'dyndns')); $a_dyndns = $config['dyndnses']['dyndns']; -if (!is_array($config['dnsupdates'])) { - $config['dnsupdates'] = array(); -} -if (!is_array($config['dnsupdates']['dnsupdate'])) { - $config['dnsupdates']['dnsupdate'] = array(); -} - +init_config_arr(array('dnsupdates', 'dnsupdate')); $a_rfc2136 = $config['dnsupdates']['dnsupdate']; $all_dyndns = array_merge($a_dyndns, $a_rfc2136); @@ -192,7 +179,7 @@ if (!function_exists('get_dyndns_service_text')) {