From 55c0a49911a2c78a7f224025fbdcc71dad353a32 Mon Sep 17 00:00:00 2001 From: billz Date: Sun, 3 Sep 2023 09:47:51 +0200 Subject: [PATCH] Fix php warnings + general code cleanup --- includes/adblock.php | 7 ++++-- includes/functions.php | 7 +++--- includes/hostapd.php | 52 ++++++++++++++++++++++++++---------------- includes/openvpn.php | 2 +- 4 files changed, 42 insertions(+), 26 deletions(-) diff --git a/includes/adblock.php b/includes/adblock.php index c61c25f6..bf16bcb7 100755 --- a/includes/adblock.php +++ b/includes/adblock.php @@ -75,8 +75,11 @@ function DisplayAdBlockConfig() $dnsmasq_state = ($dnsmasq[0] > 0); $serviceStatus = $dnsmasq_state && $enabled ? "up" : "down"; - $adblock_custom_content = file_get_contents(RASPI_ADBLOCK_LISTPATH .'custom.txt'); - + if (file_exists(RASPI_ADBLOCK_LISTPATH .'custom.txt')) { + $adblock_custom_content = file_get_contents(RASPI_ADBLOCK_LISTPATH .'custom.txt'); + } else { + $adblock_custom_content = ''; + } $adblock_log = ''; exec('sudo chmod o+r '.RASPI_DHCPCD_LOG); $handle = fopen(RASPI_DHCPCD_LOG, "r"); diff --git a/includes/functions.php b/includes/functions.php index 7618eeb2..8f7d1111 100755 --- a/includes/functions.php +++ b/includes/functions.php @@ -58,7 +58,7 @@ function cidr2mask($cidr) $ipLong = ip2long($ip); $netmaskLong = bindec(str_pad(str_repeat('1', $prefixLength), 32, '0')); - $netmask = long2ip($netmaskLong); + $netmask = long2ip(intval($netmaskLong)); return $netmask; } @@ -430,8 +430,9 @@ function ParseConfig($arrConfig) continue; } - list($option, $value) = array_map("trim", explode("=", $line, 2)); - + if (strpos($line, "=") !== false) { + list($option, $value) = array_map("trim", explode("=", $line, 2)); + } if (empty($config[$option])) { $config[$option] = $value ?: true; } else { diff --git a/includes/hostapd.php b/includes/hostapd.php index 9e50d608..3dbbf6cf 100755 --- a/includes/hostapd.php +++ b/includes/hostapd.php @@ -40,22 +40,25 @@ function DisplayHostAPDConfig() exec($cmd, $txpower); $txpower = intval($txpower[0]); + if (isset($_POST['interface'])) { + $interface = escapeshellarg($_POST['interface']); + } if (!RASPI_MONITOR_ENABLED) { if (isset($_POST['SaveHostAPDSettings'])) { SaveHostAPDConfig($arrSecurity, $arrEncType, $arr80211Standard, $interfaces, $status); } } - $arrHostapdConf = parse_ini_file('/etc/raspap/hostapd.ini'); + $arrHostapdConf = parse_ini_file(RASPI_CONFIG.'/hostapd.ini'); if (!RASPI_MONITOR_ENABLED) { if (isset($_POST['StartHotspot']) || isset($_POST['RestartHotspot'])) { $status->addMessage('Attempting to start hotspot', 'info'); if ($arrHostapdConf['BridgedEnable'] == 1) { - exec('sudo /etc/raspap/hostapd/servicestart.sh --interface br0 --seconds 3', $return); + exec('sudo '.RASPI_CONFIG.'/hostapd/servicestart.sh --interface br0 --seconds 3', $return); } elseif ($arrHostapdConf['WifiAPEnable'] == 1) { - exec('sudo /etc/raspap/hostapd/servicestart.sh --interface uap0 --seconds 3', $return); + exec('sudo '.RASPI_CONFIG.'/hostapd/servicestart.sh --interface uap0 --seconds 3', $return); } else { - exec('sudo /etc/raspap/hostapd/servicestart.sh --seconds 3', $return); + exec('sudo '.RASPI_CONFIG.'/hostapd/servicestart.sh --seconds 3', $return); } foreach ($return as $line) { $status->addMessage($line, 'info'); @@ -69,9 +72,11 @@ function DisplayHostAPDConfig() } } exec('cat '. RASPI_HOSTAPD_CONFIG, $hostapdconfig); - exec('iwgetid '. escapeshellarg($_POST['interface']). ' -r', $wifiNetworkID); - if (!empty($wifiNetworkID[0])) { - $managedModeEnabled = true; + if (isset($interface)) { + exec('iwgetid '. $interface. ' -r', $wifiNetworkID); + if (!empty($wifiNetworkID[0])) { + $managedModeEnabled = true; + } } $hostapdstatus = $system->hostapdStatus(); $serviceStatus = $hostapdstatus[0] == 0 ? "down" : "up"; @@ -98,16 +103,18 @@ function DisplayHostAPDConfig() $arrConfig['country_code'] = $country_code[0]; } // set txpower with iw if value is non-default ('auto') - if (isset($_POST['txpower']) && ($_POST['txpower'] != 'auto')) { - $txpower = intval($_POST['txpower']); - $sdBm = $txpower * 100; - exec('sudo /sbin/iw dev '.escapeshellarg($_POST['interface']).' set txpower fixed '.$sdBm, $return); - $status->addMessage('Setting transmit power to '.$_POST['txpower'].' dBm.', 'success'); - $txpower = $_POST['txpower']; - } elseif ($_POST['txpower'] == 'auto') { - exec('sudo /sbin/iw dev '.escapeshellarg($_POST['interface']).' set txpower auto', $return); - $status->addMessage('Setting transmit power to '.$_POST['txpower'].'.', 'success'); - $txpower = $_POST['txpower']; + if (isset($_POST['txpower'])) { + if ($_POST['txpower'] != 'auto') { + $txpower = intval($_POST['txpower']); + $sdBm = $txpower * 100; + exec('sudo /sbin/iw dev '.$interface.' set txpower fixed '.$sdBm, $return); + $status->addMessage('Setting transmit power to '.$_POST['txpower'].' dBm.', 'success'); + $txpower = $_POST['txpower']; + } elseif ($_POST['txpower'] == 'auto') { + exec('sudo /sbin/iw dev '.$interface.' set txpower auto', $return); + $status->addMessage('Setting transmit power to '.$_POST['txpower'].'.', 'success'); + $txpower = $_POST['txpower']; + } } $countries_5Ghz_max48ch = RASPI_5GHZ_ISO_ALPHA2; @@ -132,6 +139,8 @@ function DisplayHostAPDConfig() if ($selectedHwMode === $hwModeDisabled) { unset($selectedHwMode); } + } else { + $hwModeDisabled = null; } echo renderTemplate( @@ -168,13 +177,16 @@ function DisplayHostAPDConfig() */ function SaveHostAPDConfig($wpa_array, $enc_types, $modes, $interfaces, $status) { - // It should not be possible to send bad data for these fields so clearly - // someone is up to something if they fail. Fail silently. + // It should not be possible to send bad data for these fields. + // If wpa fields are absent, return false and log securely. if (!(array_key_exists($_POST['wpa'], $wpa_array) && array_key_exists($_POST['wpa_pairwise'], $enc_types) && array_key_exists($_POST['hw_mode'], $modes)) ) { - error_log("Attempting to set hostapd config with wpa='".$_POST['wpa']."', wpa_pairwise='".$_POST['wpa_pairwise']."' and hw_mode='".$_POST['hw_mode']."'"); // FIXME: log injection + $err = "Attempting to set hostapd config with wpa='".escapeshellarg($_POST['wpa']); + $err .= "', wpa_pairwise='".$escapeshellarg(_POST['wpa_pairwise']); + $err .= "and hw_mode='".$escapeshellarg(_POST['hw_mode'])."'"; + error_log($err); return false; } // Validate input diff --git a/includes/openvpn.php b/includes/openvpn.php index a89c3e18..a00cef87 100755 --- a/includes/openvpn.php +++ b/includes/openvpn.php @@ -64,7 +64,7 @@ function DisplayOpenVPNConfig() ftruncate($f, 0); fclose($f); } - } elseif (isset($_POST['log-openvpn']) || filesize('/tmp/openvpn.log') >0) { + } elseif (isset($_POST['log-openvpn']) || file_exists('/tmp/openvpn.log')) { $logEnable = 1; exec("sudo /etc/raspap/openvpn/openvpnlog.sh", $logOutput); $logOutput = file_get_contents('/tmp/openvpn.log');