[LTP] [PATCH] cgroup_dir_mk: set the umask to '0' before creating the subdir

Li Wang liwang@redhat.com
Fri Mar 1 11:23:47 CET 2024


This is to resolve the permission issue when creating
a new subdir in the cgroup, in case of system's default
umask is 0077, this will trigger issues for LTP case.

 cgroup_core01.c will report following error msg:
 cgroup_core01.c:50: TBROK: openat(21</sys/fs/cgroup/memory/ltp/test-3519/child_b>, 'tasks', 2, 0): EACCES (13)

Signed-off-by: Li Wang <liwang@redhat.com>
Cc: Wei Gao <wegao@suse.com>
---

Notes:
    Hi Wei, can you help confirm if this patch works for you?

 lib/tst_cgroup.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/lib/tst_cgroup.c b/lib/tst_cgroup.c
index a8a598e0e..f6afb51d6 100644
--- a/lib/tst_cgroup.c
+++ b/lib/tst_cgroup.c
@@ -361,6 +361,7 @@ static void cgroup_dir_mk(const struct cgroup_dir *const parent,
 			  struct cgroup_dir *const new)
 {
 	const char *dpath;
+	mode_t old_umask = umask(0);
 
 	new->dir_root = parent->dir_root;
 	new->dir_name = dir_name;
@@ -394,6 +395,7 @@ static void cgroup_dir_mk(const struct cgroup_dir *const parent,
 opendir:
 	new->dir_fd = SAFE_OPENAT(parent->dir_fd, dir_name,
 				  O_PATH | O_DIRECTORY);
+	umask(old_umask);
 }
 
 #define PATH_MAX_STRLEN 4095
-- 
2.40.1



More information about the ltp mailing list