Check for open_basedir before reading /proc

Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
pull/37959/head
Git'Fellow 3 years ago
parent 9e7fc23bd0
commit 53b84732a3
  1. 16
      lib/private/Preview/Generator.php

@ -258,8 +258,20 @@ class Generator {
public static function getHardwareConcurrency(): int {
static $width;
if (!isset($width)) {
if (is_file("/proc/cpuinfo")) {
$width = substr_count(file_get_contents("/proc/cpuinfo"), "processor");
if (function_exists('ini_get')) {
$openBasedir = ini_get('open_basedir');
if ($openBasedir == '') {
$width = is_readable('/proc/cpuinfo') ? substr_count(file_get_contents('/proc/cpuinfo'), 'processor') : 0;
} else {
$openBasedirPaths = explode(':', $openBasedir);
foreach ($openBasedirPaths as $path) {
if (strpos($path, '/proc') === 0 || $path === '/proc/cpuinfo') {
$width = is_readable('/proc/cpuinfo') ? substr_count(file_get_contents('/proc/cpuinfo'), 'processor') : 0;
} else {
$width = 0;
}
}
}
} else {
$width = 0;
}

Loading…
Cancel
Save