diff --git a/src/basic/cgroup-util.c b/src/basic/cgroup-util.c index 95891f68aa..7dd8e4e0fc 100644 --- a/src/basic/cgroup-util.c +++ b/src/basic/cgroup-util.c @@ -2027,7 +2027,7 @@ int cg_kernel_controllers(Set **ret) { (void) read_line(f, SIZE_MAX, NULL); for (;;) { - char *controller; + _cleanup_free_ char *controller = NULL; int enabled = 0; errno = 0; @@ -2042,17 +2042,13 @@ int cg_kernel_controllers(Set **ret) { return -EBADMSG; } - if (!enabled) { - free(controller); + if (!enabled) continue; - } - if (!cg_controller_is_valid(controller)) { - free(controller); + if (!cg_controller_is_valid(controller)) return -EBADMSG; - } - r = set_consume(controllers, controller); + r = set_consume(controllers, TAKE_PTR(controller)); if (r < 0) return r; }