]> git.ipfire.org Git - thirdparty/libcgroup.git/commitdiff
check for unconfigured cgroup in cgroup_find_parent
authorEric Brower <ebrower@gmail.com>
Tue, 27 Jul 2010 05:51:23 +0000 (22:51 -0700)
committerDhaval Giani <dhaval.giani@gmail.com>
Tue, 27 Jul 2010 08:34:39 +0000 (10:34 +0200)
Check for cgroup without controllers to prevent segfault, as the
current implementation depends upon a controller being configured.

Signed-off-by: Eric Brower <ebrower@gmail.com>
Signed-off-by: Dhaval Giani <dhaval.giani@gmail.com>
src/api.c

index 5092ac96b27ad6decae93c542b2b633141c8fd33..33c64ccb0034dec57d5c3242d46d62afc63ba002 100644 (file)
--- a/src/api.c
+++ b/src/api.c
@@ -1502,6 +1502,12 @@ static int cgroup_find_parent(struct cgroup *cgroup, char **parent)
 
        *parent = NULL;
 
+       /* if cgroup has no controllers attached, consider it unconfigured */
+       if (cgroup->controller[0] == NULL) {
+               cgroup_dbg("cgroup_find_parent called on unconfigured group\n");
+               return ECGFAIL;
+       }
+
        pthread_rwlock_rdlock(&cg_mount_table_lock);
        controller = cgroup->controller[0]->name;
        if (!cg_build_path_locked(cgroup->name, child_path, controller)) {