From c69b38bc42c3f36c4bfec8632e6f78dc97e56a99 Mon Sep 17 00:00:00 2001 From: Michael Kaufmann Date: Tue, 10 Sep 2024 14:11:26 +0200 Subject: [PATCH] [config-services] add validation for empty or non-existing configuration template xml files; [php-fpm] remove 'date.timezone' from php_admin_values (superfluous as it is in php_values); [antispam] set rewrite_subject to a slighty higher score then used for add_header, fixes #1275 Signed-off-by: Michael Kaufmann --- install/froxlor.sql.php | 1 - lib/Froxlor/Cli/ConfigServices.php | 11 ++++++++++- lib/Froxlor/Cron/Mail/Rspamd.php | 2 +- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/install/froxlor.sql.php b/install/froxlor.sql.php index 21add8c9..f3d4b114 100644 --- a/install/froxlor.sql.php +++ b/install/froxlor.sql.php @@ -495,7 +495,6 @@ opcache.save_comments opcache.use_cwd opcache.fast_shutdown'), ('phpfpm', 'ini_admin_values', 'cgi.redirect_status_env -date.timezone disable_classes disable_functions error_log diff --git a/lib/Froxlor/Cli/ConfigServices.php b/lib/Froxlor/Cli/ConfigServices.php index b37365a5..54d5c455 100644 --- a/lib/Froxlor/Cli/ConfigServices.php +++ b/lib/Froxlor/Cli/ConfigServices.php @@ -217,6 +217,10 @@ final class ConfigServices extends CliCommand $_daemons_config['distro'] = $io->choice('Choose distribution', $valid_dists, $os_default); // go through all services and let user check whether to include it or not + if (empty($_daemons_config['distro']) || !file_exists($config_dir . '/' . $_daemons_config['distro']. ".xml")) { + $output->writeln('Empty or non-existing distribution given.'); + return self::INVALID; + } $configfiles = new ConfigParser($config_dir . '/' . $_daemons_config['distro'] . ".xml"); $services = $configfiles->getServices(); @@ -352,8 +356,13 @@ final class ConfigServices extends CliCommand } if (!empty($decoded_config)) { + $config_dir = Froxlor::getInstallDir() . 'lib/configfiles/'; - $configfiles = new ConfigParser($config_dir . '/' . $decoded_config['distro'] . ".xml"); + if (empty($decoded_config['distro']) || !file_exists($config_dir . '/' . $decoded_config['distro']. ".xml")) { + $output->writeln('Empty or non-existing distribution given. Please login with an admin, go to "System -> Configuration" and select your correct distribution in the top-right corner or specify valid distribution name for "distro" parameter.'); + return self::INVALID; + } + $configfiles = new ConfigParser($config_dir . '/' . $decoded_config['distro']. ".xml"); $services = $configfiles->getServices(); $replace_arr = $this->getReplacerArray(); diff --git a/lib/Froxlor/Cron/Mail/Rspamd.php b/lib/Froxlor/Cron/Mail/Rspamd.php index ece47766..624e91dd 100644 --- a/lib/Froxlor/Cron/Mail/Rspamd.php +++ b/lib/Froxlor/Cron/Mail/Rspamd.php @@ -185,7 +185,7 @@ class Rspamd $this->frx_settings_file .= ' apply {' . "\n"; $this->frx_settings_file .= ' actions {' . "\n"; $this->frx_settings_file .= ' "add header" = ' . $email['spam_tag_level'] . ';' . "\n"; - $this->frx_settings_file .= ' rewrite_subject = ' . $email['spam_tag_level'] . ';' . "\n"; + $this->frx_settings_file .= ' rewrite_subject = ' . ($email['spam_tag_level'] + 0.01) . ';' . "\n"; $this->frx_settings_file .= ' reject = ' . $email['spam_kill_level'] . ';' . "\n"; if ($type == 'rcpt' && (int)$email['policy_greylist'] == 0) { $this->frx_settings_file .= ' greylist = null;' . "\n";