execute: introduce exec_command_done() to free data from static ExecCommand structs
This commit is contained in:
parent
26fd040d4a
commit
43d0fcbd3f
21
execute.c
21
execute.c
|
@ -776,14 +776,29 @@ void exec_context_done(ExecContext *c) {
|
|||
}
|
||||
}
|
||||
|
||||
void exec_command_done(ExecCommand *c) {
|
||||
assert(c);
|
||||
|
||||
free(c->path);
|
||||
c->path = NULL;
|
||||
|
||||
strv_free(c->argv);
|
||||
c->argv = NULL;
|
||||
}
|
||||
|
||||
void exec_command_done_array(ExecCommand *c, unsigned n) {
|
||||
unsigned i;
|
||||
|
||||
for (i = 0; i < n; i++)
|
||||
exec_command_done(c+i);
|
||||
}
|
||||
|
||||
void exec_command_free_list(ExecCommand *c) {
|
||||
ExecCommand *i;
|
||||
|
||||
while ((i = c)) {
|
||||
LIST_REMOVE(ExecCommand, command, c, i);
|
||||
|
||||
free(i->path);
|
||||
strv_free(i->argv);
|
||||
exec_command_done(i);
|
||||
free(i);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -162,6 +162,9 @@ int exec_spawn(ExecCommand *command,
|
|||
struct CGroupBonding *cgroup_bondings,
|
||||
pid_t *ret);
|
||||
|
||||
void exec_command_done(ExecCommand *c);
|
||||
void exec_command_done_array(ExecCommand *c, unsigned n);
|
||||
|
||||
void exec_command_free_list(ExecCommand *c);
|
||||
void exec_command_free_array(ExecCommand **c, unsigned n);
|
||||
|
||||
|
|
Loading…
Reference in a new issue