Aggiunto try catch per funzione exec sconosciuta

This commit is contained in:
Luca 2024-01-06 19:34:00 +01:00
parent f40d3ee4f3
commit 34a0edd2d0
2 changed files with 34 additions and 12 deletions

View File

@ -125,6 +125,11 @@ $settings = [
'type' => 'value',
'description' => '>5000',
],
'exec' => [
'type' => 'function',
'description' => tr('Permette di importare file con estensione .p7m'),
],
];
$php = [];
@ -140,6 +145,8 @@ foreach ($settings as $name => $values) {
$status = ((version_compare(phpversion(), $values['minimum'], '>=') && version_compare(phpversion(), $values['maximum'], '<=')) ? 1 : 0);
} elseif ($values['type'] == 'ext') {
$status = extension_loaded($name);
} elseif ($values['type'] == 'function') {
$status = is_callable($name);
} else {
$ini = str_replace(['k', 'M'], ['000', '000000'], ini_get($name));
$real = str_replace(['k', 'M'], ['000', '000000'], $description);
@ -164,13 +171,13 @@ foreach ($settings as $name => $values) {
]);
}
$type = ($values['type'] == 'ext') ? tr('Estensione') : tr('Impostazione');
if ($values['type'] == 'ext') {
$type = tr('Estensione');
} elseif ($values['type'] == 'version') {
$type = tr('Versione');
} else {
} elseif ($values['type'] == 'function') {
$type = tr('Funzione');
}else {
$type = tr('Impostazione');
}

View File

@ -92,18 +92,33 @@ class XML
$output_file = $directory.'/'.basename($file, '.p7m');
exec('openssl smime -verify -noverify -in "'.$file.'" -inform DER -out "'.$output_file.'"', $output, $cmd);
if (!file_exists($output_file)) {
$signer = $directory.'/signer';
self::decode($file, $output_file, $signer);
self::der2smime($file);
self::decode($file, $output_file, $signer);
try {
if (function_exists('exec')) {
exec('openssl smime -verify -noverify -in "'.$file.'" -inform DER -out "'.$output_file.'"', $output, $cmd);
if (!file_exists($output_file)) {
return false;
$signer = $directory.'/signer';
self::decode($file, $output_file, $signer);
self::der2smime($file);
self::decode($file, $output_file, $signer);
if (!file_exists($output_file)) {
return false;
}
}
}
if ($cmd === 0) {
return empty($output[0]) ? tr('Nessuna informazione sulla versione del client PHP') : $output[0];
}
}
catch (Exception $e) {
return false;
}
return $output_file;