Skip to content

Commit 91f4496

Browse files
fix: harden partition drop handling
1 parent d6c11b6 commit 91f4496

1 file changed

Lines changed: 11 additions & 4 deletions

File tree

functions.php

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -458,11 +458,18 @@ function syslog_partition_remove($table) {
458458
while ($user_partitions > $days) {
459459
$oldest = $number_of_partitions[$i];
460460

461-
cacti_log("SYSLOG: Removing old partition '" . $oldest['PARTITION_NAME'] . "'", false, 'SYSTEM');
461+
$part_name = $oldest['PARTITION_NAME'];
462462

463-
syslog_debug("Removing partition '" . $oldest['PARTITION_NAME'] . "'");
463+
if (!preg_match('/^[a-zA-Z0-9_]+$/', $part_name)) {
464+
cacti_log("SYSLOG ERROR: Invalid partition name '$part_name' for '$table'; skipping drop", false, 'SYSLOG');
465+
break;
466+
}
467+
468+
cacti_log("SYSLOG: Removing old partition '" . $part_name . "'", false, 'SYSTEM');
469+
470+
syslog_debug("Removing partition '" . $part_name . "'");
464471

465-
syslog_db_execute("ALTER TABLE `$syslogdb_default`.`$table` DROP PARTITION " . $oldest['PARTITION_NAME']);
472+
syslog_db_execute("ALTER TABLE `$syslogdb_default`.`$table` DROP PARTITION `$part_name`");
466473

467474
$i++;
468475
$user_partitions--;
@@ -2358,7 +2365,7 @@ function syslog_process_reports() {
23582365
$sql .= ' ORDER BY logtime DESC';
23592366
$items = syslog_db_fetch_assoc_prepared($sql, [$date1, $date2]);
23602367

2361-
syslog_debug('We have ' . db_affected_rows($syslog_cnn) . ' items for the Report');
2368+
syslog_debug('We have ' . cacti_sizeof($items) . ' items for the Report');
23622369

23632370
$classes = ['even', 'odd'];
23642371

0 commit comments

Comments
 (0)