mirror of
https://git.proxmox.com/git/mirror_lxc
synced 2025-08-03 07:23:23 +00:00
cgroupfs: need the full path to setup cpuset
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>
This commit is contained in:
parent
a8117b3361
commit
47f5ede0ec
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user