From 05cae7f3431446236139434ee58a6275f3cb31e8 Mon Sep 17 00:00:00 2001 From: Zbigniew Jędrzejewski-Szmek Date: Thu, 24 Apr 2014 17:23:38 +0200 Subject: systemctl: small cleanup --- src/systemctl/systemctl.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) (limited to 'src/systemctl') diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c index b13b2731ce..2fa8ecc664 100644 --- a/src/systemctl/systemctl.c +++ b/src/systemctl/systemctl.c @@ -5009,11 +5009,11 @@ static int enable_sysv_units(const char *verb, char **args) { r = 0; for (f = 0; args[f]; f++) { const char *name; - _cleanup_free_ char *p = NULL, *q = NULL; + _cleanup_free_ char *p = NULL, *q = NULL, *l = NULL; bool found_native = false, found_sysv; unsigned c = 1; const char *argv[6] = { "/sbin/chkconfig", NULL, NULL, NULL, NULL }; - char **k, *l; + char **k; int j; pid_t pid; siginfo_t status; @@ -5027,6 +5027,8 @@ static int enable_sysv_units(const char *verb, char **args) { continue; STRV_FOREACH(k, paths.unit_path) { + _cleanup_free_ char *path = NULL; + if (!isempty(arg_root)) asprintf(&p, "%s/%s/%s", arg_root, *k, name); else @@ -5038,9 +5040,6 @@ static int enable_sysv_units(const char *verb, char **args) { } found_native = access(p, F_OK) >= 0; - free(p); - p = NULL; - if (found_native) break; } @@ -5057,9 +5056,8 @@ static int enable_sysv_units(const char *verb, char **args) { goto finish; } - p[strlen(p) - sizeof(".service") + 1] = 0; + p[strlen(p) - strlen(".service")] = 0; found_sysv = access(p, F_OK) >= 0; - if (!found_sysv) continue; @@ -5084,7 +5082,6 @@ static int enable_sysv_units(const char *verb, char **args) { } log_info("Executing %s", l); - free(l); pid = fork(); if (pid < 0) { -- cgit v1.2.3-54-g00ecf