Example #1
0
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;
}
Example #2
0
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;
}