From: Lennart Poettering Date: Wed, 17 Oct 2018 18:18:27 +0000 (+0200) Subject: service: use free_and_replace() where we can X-Git-Tag: v240~529^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=refs%2Fpull%2F10440%2Fhead;p=thirdparty%2Fsystemd.git service: use free_and_replace() where we can --- diff --git a/src/core/service.c b/src/core/service.c index fa2c6996adc..5f98a504d01 100644 --- a/src/core/service.c +++ b/src/core/service.c @@ -2601,10 +2601,10 @@ static int service_deserialize_exec_command(Unit *u, const char *key, const char _cleanup_free_ char *arg = NULL; r = extract_first_word(&value, &arg, NULL, EXTRACT_CUNESCAPE); + if (r < 0) + return r; if (r == 0) break; - else if (r < 0) - return r; switch (state) { case STATE_EXEC_COMMAND_TYPE: @@ -2744,10 +2744,8 @@ static int service_deserialize_item(Unit *u, const char *key, const char *value, r = cunescape(value, 0, &t); if (r < 0) log_unit_debug_errno(u, r, "Failed to unescape status text: %s", value); - else { - free(s->status_text); - s->status_text = t; - } + else + free_and_replace(s->status_text, t); } else if (streq(key, "accept-socket")) { Unit *socket;