diff --git a/src/core/execute.c b/src/core/execute.c index a08e3105bf..ed735a7660 100644 --- a/src/core/execute.c +++ b/src/core/execute.c @@ -4342,18 +4342,22 @@ void exec_context_free_log_extra_fields(ExecContext *c) { void exec_status_start(ExecStatus *s, pid_t pid) { assert(s); - zero(*s); - s->pid = pid; + *s = (ExecStatus) { + .pid = pid, + }; + dual_timestamp_get(&s->start_timestamp); } void exec_status_exit(ExecStatus *s, const ExecContext *context, pid_t pid, int code, int status) { assert(s); - if (s->pid && s->pid != pid) - zero(*s); + if (s->pid != pid) { + *s = (ExecStatus) { + .pid = pid, + }; + } - s->pid = pid; dual_timestamp_get(&s->exit_timestamp); s->code = code; @@ -4361,7 +4365,7 @@ void exec_status_exit(ExecStatus *s, const ExecContext *context, pid_t pid, int if (context) { if (context->utmp_id) - utmp_put_dead_process(context->utmp_id, pid, code, status); + (void) utmp_put_dead_process(context->utmp_id, pid, code, status); exec_context_tty_reset(context, NULL); }