cgroups: check that opened file descriptor is a cgroup filesystem

Link: https://discuss.linuxcontainers.org/t/lxd-4-23-unable-to-start-nested-containers/13416
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
This commit is contained in:
Christian Brauner 2022-02-20 15:47:28 +01:00
parent cc07e2d6c0
commit c090dbedbd
No known key found for this signature in database
GPG Key ID: 91C61BC06578DCA2

View File

@ -3174,6 +3174,12 @@ static int __initialize_cgroups(struct cgroup_ops *ops, bool relative,
SYSTRACE("Unified cgroup not mounted");
continue;
}
if (!fhas_fs_type(dfd_mnt, CGROUP2_SUPER_MAGIC)) {
SYSTRACE("Opened file descriptor %d is not a cgroup2 mountpoint", dfd_mnt);
continue;
}
dfd = dfd_mnt;
if (!is_empty_string(current_cgroup)) {
@ -3239,6 +3245,12 @@ static int __initialize_cgroups(struct cgroup_ops *ops, bool relative,
SYSTRACE("%s not mounted", controllers);
continue;
}
if (!fhas_fs_type(dfd_mnt, CGROUP_SUPER_MAGIC)) {
SYSTRACE("Opened file descriptor %d is not a cgroup mountpoint", dfd_mnt);
continue;
}
dfd = dfd_mnt;
if (!abspath(__current_cgroup))