summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/core/dbus-service.c6
-rw-r--r--src/core/execute.c10
-rw-r--r--src/core/execute.h2
-rw-r--r--src/core/load-fragment.c3
4 files changed, 9 insertions, 12 deletions
diff --git a/src/core/dbus-service.c b/src/core/dbus-service.c
index 5a881e8249..2b50ac93d8 100644
--- a/src/core/dbus-service.c
+++ b/src/core/dbus-service.c
@@ -187,10 +187,8 @@ static int bus_service_set_transient_property(
ExecCommand *c;
size_t size = 0;
- if (n == 0) {
- exec_command_free_list(s->exec_command[SERVICE_EXEC_START]);
- s->exec_command[SERVICE_EXEC_START] = NULL;
- }
+ if (n == 0)
+ s->exec_command[SERVICE_EXEC_START] = exec_command_free_list(s->exec_command[SERVICE_EXEC_START]);
f = open_memstream(&buf, &size);
if (!f)
diff --git a/src/core/execute.c b/src/core/execute.c
index ae2a52d44a..bc925cd80c 100644
--- a/src/core/execute.c
+++ b/src/core/execute.c
@@ -2007,7 +2007,7 @@ void exec_command_done_array(ExecCommand *c, unsigned n) {
exec_command_done(c+i);
}
-void exec_command_free_list(ExecCommand *c) {
+ExecCommand* exec_command_free_list(ExecCommand *c) {
ExecCommand *i;
while ((i = c)) {
@@ -2015,15 +2015,15 @@ void exec_command_free_list(ExecCommand *c) {
exec_command_done(i);
free(i);
}
+
+ return NULL;
}
void exec_command_free_array(ExecCommand **c, unsigned n) {
unsigned i;
- for (i = 0; i < n; i++) {
- exec_command_free_list(c[i]);
- c[i] = NULL;
- }
+ for (i = 0; i < n; i++)
+ c[i] = exec_command_free_list(c[i]);
}
int exec_context_load_environment(const ExecContext *c, const char *unit_id, char ***l) {
diff --git a/src/core/execute.h b/src/core/execute.h
index 5ed750534d..2c201399e3 100644
--- a/src/core/execute.h
+++ b/src/core/execute.h
@@ -228,7 +228,7 @@ int exec_spawn(ExecCommand *command,
void exec_command_done(ExecCommand *c);
void exec_command_done_array(ExecCommand *c, unsigned n);
-void exec_command_free_list(ExecCommand *c);
+ExecCommand* exec_command_free_list(ExecCommand *c);
void exec_command_free_array(ExecCommand **c, unsigned n);
char *exec_command_line(char **argv);
diff --git a/src/core/load-fragment.c b/src/core/load-fragment.c
index 358d36beb6..e8dfa1a511 100644
--- a/src/core/load-fragment.c
+++ b/src/core/load-fragment.c
@@ -538,8 +538,7 @@ int config_parse_exec(const char *unit,
if (isempty(rvalue)) {
/* An empty assignment resets the list */
- exec_command_free_list(*e);
- *e = NULL;
+ *e = exec_command_free_list(*e);
return 0;
}