diff --git a/src/etc/inc/system.inc b/src/etc/inc/system.inc index 2abd91b67f..9a565ef97a 100644 --- a/src/etc/inc/system.inc +++ b/src/etc/inc/system.inc @@ -870,6 +870,7 @@ function clear_log_file($logfile = "/var/log/system.log", $restart_syslogd = tru touch($logfile); } else { $log_size = isset($config['syslog']['logfilesize']) ? $config['syslog']['logfilesize'] : "511488"; + $log_size = ($log_size < (2**32)/2) ? $log_size : "511488"; $log_size = isset($config['syslog'][basename($logfile, '.log') . '_settings']['logfilesize']) ? $config['syslog'][basename($logfile, '.log') . '_settings']['logfilesize'] : $log_size; exec("/usr/local/sbin/clog -i -s {$log_size} " . escapeshellarg($logfile)); } diff --git a/src/usr/local/www/status_logs_common.inc b/src/usr/local/www/status_logs_common.inc index dc36373e28..3e35f5fc7c 100644 --- a/src/usr/local/www/status_logs_common.inc +++ b/src/usr/local/www/status_logs_common.inc @@ -649,6 +649,8 @@ function manage_log_code() { if (isset($logfilesize) && (strlen($logfilesize) > 0)) { if (!is_numeric($logfilesize) || ($logfilesize < 100000)) { $input_errors[] = gettext("Log file size must be numeric and greater than or equal to 100000."); + } elseif ($logfilesize >= (2**32)/2) { + $input_errors[] = gettext("Log file size is too large. Set a smaller value."); } } diff --git a/src/usr/local/www/status_logs_settings.php b/src/usr/local/www/status_logs_settings.php index 109d5a8647..269c4a5346 100644 --- a/src/usr/local/www/status_logs_settings.php +++ b/src/usr/local/www/status_logs_settings.php @@ -103,6 +103,8 @@ if ($_POST['resetlogs'] == gettext("Reset Log Files")) { if (isset($_POST['logfilesize']) && (strlen($_POST['logfilesize']) > 0)) { if (!is_numeric($_POST['logfilesize']) || ($_POST['logfilesize'] < 100000)) { $input_errors[] = gettext("Log file size must be numeric and greater than or equal to 100000."); + } elseif ($_POST['logfilesize'] >= (2**32)/2) { + $input_errors[] = gettext("Log file size is too large. Set a smaller value."); } } if (!$input_errors) {