When the 'R' flag is used with a newsyslog.conf entry, some fields of
the corresponding struct sigwork_entry were left uninitialized, potentially causing an early return from do_sigwork(). Ensure that these fields are initialized, and handle the 'R' flag properly in do_sigwork(). PR: bin/175330 Reviewed by: gad Approved by: rstone (co-mentor) MFC after: 1 week
This commit is contained in:
parent
9d3fe41880
commit
eb5455fa48
@ -1866,7 +1866,7 @@ do_sigwork(struct sigwork_entry *swork)
|
||||
int kres, secs;
|
||||
char *tmp;
|
||||
|
||||
if (!(swork->sw_pidok) || swork->sw_pid == 0)
|
||||
if (swork->run_cmd == 0 && (!(swork->sw_pidok) || swork->sw_pid == 0))
|
||||
return; /* no work to do... */
|
||||
|
||||
/*
|
||||
@ -2078,6 +2078,8 @@ save_sigwork(const struct conf_entry *ent)
|
||||
stmp->run_cmd = 0;
|
||||
/* If this is a command to run we just set the flag and run command */
|
||||
if (ent->flags & CE_PID2CMD) {
|
||||
stmp->sw_pid = -1;
|
||||
stmp->sw_pidok = 0;
|
||||
stmp->run_cmd = 1;
|
||||
} else {
|
||||
set_swpid(stmp, ent);
|
||||
|
Loading…
x
Reference in New Issue
Block a user