function mwp_is_shell_available() { if (mwp_container()->getParameter('disable_shell')) { return false; } if (mwp_is_safe_mode()) { return false; } if (!function_exists('proc_open') || !function_exists('escapeshellarg')) { return false; } $neededFunction = array('proc_get_status', 'proc_open'); $disabledFunction = mwp_get_disabled_functions(); if (count(array_diff($neededFunction, $disabledFunction)) != count($neededFunction)) { return false; } if (!mwp_is_nio_shell_available()) { return false; } return true; }
function mwp_is_shell_available() { if (mwp_container()->getParameter('disable_shell')) { return false; } if (mwp_is_safe_mode()) { return false; } if (!function_exists('proc_open') || !function_exists('escapeshellarg')) { return false; } if (extension_loaded('suhosin') && ($suhosin = ini_get('suhosin.executor.func.blacklist'))) { $suhosin = explode(',', $suhosin); $blacklist = array_map('trim', $suhosin); $blacklist = array_map('strtolower', $blacklist); if (in_array('proc_open', $blacklist)) { return false; } } if (!mwp_is_nio_shell_available()) { return false; } return true; }