diff --git a/app/Helpers/MiscHelper.php b/app/Helpers/MiscHelper.php index 71d9a5e..582f630 100644 --- a/app/Helpers/MiscHelper.php +++ b/app/Helpers/MiscHelper.php @@ -124,6 +124,12 @@ class MiscHelper return MiscHelper::getEnvironmentSetting('APP_INSTALLED'); } + public static function isExecEnabled() + { + $disabled = explode(',', ini_get('disable_functions')); + return !in_array('exec', $disabled); + } + /** * Tests whether the provided URL belongs to the current application (i.e. both scheme and hostname match.) * @param $url diff --git a/app/Http/Controllers/Admin/DefaultController.php b/app/Http/Controllers/Admin/DefaultController.php index 59ca712..f7db8bd 100644 --- a/app/Http/Controllers/Admin/DefaultController.php +++ b/app/Http/Controllers/Admin/DefaultController.php @@ -77,6 +77,15 @@ class DefaultController extends Controller $metadataUpgradeNeeded = Photo::min('metadata_version') < PhotoService::METADATA_VERSION; + // Default to a supported function call to get the OS version + $osVersion = sprintf('%s %s', php_uname('s'), php_uname('r')); + + // If the exec() function is enabled, we can do a bit better + if (MiscHelper::isExecEnabled()) + { + $osVersion = exec('lsb_release -ds 2>/dev/null || cat /etc/*release 2>/dev/null | head -n1 || uname -om'); + } + return Theme::render('admin.index', [ 'album_count' => $albumCount, 'app_version' => config('app.version'), @@ -86,7 +95,7 @@ class DefaultController extends Controller 'metadata_upgrade_needed' => $metadataUpgradeNeeded, 'photo_count' => $photoCount, 'php_version' => phpversion(), - 'os_version' => exec('lsb_release -ds 2>/dev/null || cat /etc/*release 2>/dev/null | head -n1 || uname -om'), + 'os_version' => $osVersion, 'server_name' => gethostname(), 'upload_file_size' => ini_get('upload_max_filesize'), 'upload_max_limit' => ini_get('post_max_size'),