From: Zbigniew Jędrzejewski-Szmek Date: Tue, 10 Mar 2020 09:50:27 +0000 (+0100) Subject: basic/cgroup-util: modernize cg_split_spec() X-Git-Tag: v246-rc1~762^2~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2a8020fe9dd44ddb59268fbb3df7489421df3b75;p=thirdparty%2Fsystemd.git basic/cgroup-util: modernize cg_split_spec() Those cryptic one letter variable names, yuck! --- diff --git a/src/basic/cgroup-util.c b/src/basic/cgroup-util.c index 54fc6ecf8b2..489a155b48b 100644 --- a/src/basic/cgroup-util.c +++ b/src/basic/cgroup-util.c @@ -878,9 +878,8 @@ int cg_is_empty_recursive(const char *controller, const char *path) { } } -int cg_split_spec(const char *spec, char **controller, char **path) { - char *t = NULL, *u = NULL; - const char *e; +int cg_split_spec(const char *spec, char **ret_controller, char **ret_path) { + _cleanup_free_ char *controller = NULL, *path = NULL; assert(spec); @@ -888,76 +887,53 @@ int cg_split_spec(const char *spec, char **controller, char **path) { if (!path_is_normalized(spec)) return -EINVAL; - if (path) { - t = strdup(spec); - if (!t) + if (ret_path) { + path = strdup(spec); + if (!path) return -ENOMEM; - *path = path_simplify(t, false); + path_simplify(path, false); } - if (controller) - *controller = NULL; - - return 0; - } - - e = strchr(spec, ':'); - if (!e) { - if (!cg_controller_is_valid(spec)) - return -EINVAL; + } else { + const char *e; - if (controller) { - t = strdup(spec); - if (!t) + e = strchr(spec, ':'); + if (e) { + controller = strndup(spec, e-spec); + if (!controller) return -ENOMEM; + if (!cg_controller_is_valid(controller)) + return -EINVAL; - *controller = t; - } - - if (path) - *path = NULL; + if (!isempty(e + 1)) { + path = strdup(e+1); + if (!path) + return -ENOMEM; - return 0; - } + if (!path_is_normalized(path) || + !path_is_absolute(path)) + return -EINVAL; - t = strndup(spec, e-spec); - if (!t) - return -ENOMEM; - if (!cg_controller_is_valid(t)) { - free(t); - return -EINVAL; - } + path_simplify(path, false); + } - if (isempty(e+1)) - u = NULL; - else { - u = strdup(e+1); - if (!u) { - free(t); - return -ENOMEM; - } + } else { + if (!cg_controller_is_valid(spec)) + return -EINVAL; - if (!path_is_normalized(u) || - !path_is_absolute(u)) { - free(t); - free(u); - return -EINVAL; + if (ret_controller) { + controller = strdup(spec); + if (!controller) + return -ENOMEM; + } } - - path_simplify(u, false); } - if (controller) - *controller = t; - else - free(t); - - if (path) - *path = u; - else - free(u); - + if (ret_controller) + *ret_controller = TAKE_PTR(controller); + if (ret_path) + *ret_path = TAKE_PTR(path); return 0; } diff --git a/src/basic/cgroup-util.h b/src/basic/cgroup-util.h index ad166190636..300555f1aca 100644 --- a/src/basic/cgroup-util.h +++ b/src/basic/cgroup-util.h @@ -170,7 +170,7 @@ typedef int (*cg_kill_log_func_t)(pid_t pid, int sig, void *userdata); int cg_kill(const char *controller, const char *path, int sig, CGroupFlags flags, Set *s, cg_kill_log_func_t kill_log, void *userdata); int cg_kill_recursive(const char *controller, const char *path, int sig, CGroupFlags flags, Set *s, cg_kill_log_func_t kill_log, void *userdata); -int cg_split_spec(const char *spec, char **controller, char **path); +int cg_split_spec(const char *spec, char **ret_controller, char **ret_path); int cg_mangle_path(const char *path, char **result); int cg_get_path(const char *controller, const char *path, const char *suffix, char **fs);