Escape DB name in cron command

This commit is contained in:
Jamie Cameron
2026-10-18 11:32:37 -07:00
parent b35339094a
commit c76255be5f
3 changed files with 23 additions and 7 deletions

View File

@@ -84,9 +84,18 @@ if ($cron) {
&foreign_require("cron");
@jobs = &cron::list_cron_jobs();
$cmd = $in{'all'} ? "$cron_cmd --all" : "$cron_cmd $in{'db'}";
($job) = grep { $_->{'command'} eq $cmd } @jobs;
if ($in{'all'}) {
($job) = grep { $_->{'command'} eq "$cron_cmd --all" } @jobs;
}
else {
($job) = grep {
$_->{'command'} eq $cron_cmd." ".$in{'db'} ||
$_->{'command'} eq $cron_cmd." ".quotemeta($in{'db'}) }
@jobs;
}
$oldjob = $job;
$cmd = $in{'all'} ? "$cron_cmd --all"
: $cron_cmd." ".quotemeta($in{'db'});
$job ||= { 'command' => $cmd,
'user' => 'root',
'active' => 1 };
@@ -292,7 +301,7 @@ if (!$in{'dest'}) {
}
else {
&ui_print_footer(
"edit_dbase.cgi?db=$in{'db'}", $text{'dbase_return'},
"/$module_name/edit_dbase.cgi?db=$in{'db'}", $text{'dbase_return'},
&get_databases_return_link($in{'db'}), $text{'index_return'});
}
}

View File

@@ -201,8 +201,15 @@ if ($cron) {
# Show cron time
&foreign_require("cron", "cron-lib.pl");
@jobs = &cron::list_cron_jobs();
$cmd = $in{'all'} ? "$cron_cmd --all" : "$cron_cmd $in{'db'}";
($job) = grep { $_->{'command'} eq $cmd } @jobs;
if ($in{'all'}) {
($job) = grep { $_->{'command'} eq "$cron_cmd --all" } @jobs;
}
else {
($job) = grep {
$_->{'command'} eq $cron_cmd." ".$in{'db'} ||
$_->{'command'} eq $cron_cmd." ".quotemeta($in{'db'}) }
@jobs;
}
print &ui_table_row($text{'backup_sched'},
&ui_radio("sched", $job ? 1 : 0,

View File

@@ -1983,8 +1983,8 @@ sub delete_database_backup_job
my ($db) = @_;
&foreign_require("cron");
my @jobs = &cron::list_cron_jobs();
my $cmd = "$cron_cmd $db";
my ($job) = grep { $_->{'command'} eq $cmd } @jobs;
my ($job) = grep { $_->{'command'} eq $cron_cmd." ".$db ||
$_->{'command'} eq $cron_cmd." ".quotemeta($db) } @jobs;
if ($job) {
&lock_file(&cron::cron_file($job));
&cron::delete_cron_job($job);