From 61be5cf0997fc607db423d5e72e525b5ef63f413 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20=C4=8Ciha=C5=99?= Date: Tue, 18 Sep 2012 15:46:45 +0200 Subject: [PATCH] Check if we can access system information before using it --- libraries/sysinfo.lib.php | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/libraries/sysinfo.lib.php b/libraries/sysinfo.lib.php index 8b6c9afe6d..c46953a351 100644 --- a/libraries/sysinfo.lib.php +++ b/libraries/sysinfo.lib.php @@ -42,7 +42,10 @@ function PMA_getSysInfo() $sysinfo = array(); if (in_array($php_os, $supported)) { - return eval("return new PMA_sysinfo" . $php_os . "();"); + $ret = eval("return new PMA_sysinfo" . $php_os . "();"); + if ($ret->supported()) { + return $ret; + } } return new PMA_Sysinfo_Default; @@ -77,6 +80,11 @@ class PMA_sysinfoWinnt return array('loadavg' => $sum / count($buffer)); } + function supported() + { + return true; + } + private function _getWMI($strClass, $strValue = array()) { $arrData = array(); @@ -148,6 +156,11 @@ class PMA_sysinfoLinux ); } + function supported() + { + return is_readable('/proc/meminfo') && is_readable('/proc/stat'); + } + function memory() { preg_match_all( @@ -188,6 +201,11 @@ class PMA_sysinfoSunos return array('loadavg' => $load1); } + function supported() + { + return is_readable('/proc/meminfo'); + } + public function memory() { preg_match_all( @@ -221,4 +239,9 @@ class PMA_sysinfoDefault { return array(); } + + function supported() + { + return true; + } }