Skip to content

Commit

Permalink
cgroupfs: need the full path to setup cpuset
Browse files Browse the repository at this point in the history
Function file_exists() needs a absolute full path, but we are using
current_entire_path which is not. It will get the wrong result from
file_exists() and case Segmentation fault when we fopen a non-exist
file and try to fscanf from it.

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
  • Loading branch information
hqhq authored and hallyn committed Jan 23, 2014
1 parent a8117b3 commit 47f5ede
Showing 1 changed file with 9 additions and 1 deletion.
10 changes: 9 additions & 1 deletion src/lxc/cgroup.c
Expand Up @@ -958,12 +958,20 @@ struct cgroup_process_info *lxc_cgroupfs_create(const char *name, const char *pa
goto cleanup_from_error;
} else if (r == 0) {
/* successfully created */
char *full_path = NULL;
r = lxc_grow_array((void ***)&info_ptr->created_paths, &info_ptr->created_paths_capacity, info_ptr->created_paths_count + 1, 8);
if (r < 0)
goto cleanup_from_error;
info_ptr->created_paths[info_ptr->created_paths_count++] = current_entire_path;

full_path = cgroup_to_absolute_path(
info_ptr->designated_mount_point,
current_entire_path, NULL);
if (!full_path)
goto cleanup_from_error;
setup_cpuset_if_needed(info_ptr->hierarchy->subsystems,
current_entire_path);
full_path);
free(full_path);
} else {
/* if we didn't create the cgroup, then we have to make sure that
* further cgroups will be created properly
Expand Down

0 comments on commit 47f5ede

Please sign in to comment.