assert(controller);
dn = controller_to_dirname(controller);
- cpath = strjoina("/sys/fs/cgroup/", dn);
- if (root)
- /* Also check that:
- * - possible subcgroup is created at root,
- * - we can modify the hierarchy.
- * "Leak" cpath on stack */
- cpath = strjoina(cpath, root, "/cgroup.procs");
+ /* If root if specified, we check that:
+ * - possible subcgroup is created at root,
+ * - we can modify the hierarchy. */
+
+ cpath = strjoina("/sys/fs/cgroup/", dn, root, root ? "/cgroup.procs" : NULL);
if (laccess(cpath, root ? W_OK : F_OK) < 0)
return -errno;
actual = strjoina("foo", NULL, "bar");
assert_se(streq(actual, "foo"));
+
+ actual = strjoina("/sys/fs/cgroup/", "dn", "/a/b/c", "/cgroup.procs");
+ assert_se(streq(actual, "/sys/fs/cgroup/dn/a/b/c/cgroup.procs"));
+
+ actual = strjoina("/sys/fs/cgroup/", "dn", NULL, NULL);
+ assert_se(streq(actual, "/sys/fs/cgroup/dn"));
}
static void test_strjoin(void) {