1 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
2 From: Jonathan Calmels <jcalmels@nvidia.com>
3 Date: Mon, 16 Apr 2018 12:30:33 -0700
4 Subject: [PATCH] pam-cgfs: ignore the system umask when creating the cgroup
8 Signed-off-by: Jonathan Calmels <jcalmels@nvidia.com>
10 src/lxc/pam/pam_cgfs.c | 18 ++++++++++++++++--
11 1 file changed, 16 insertions(+), 2 deletions(-)
13 diff --git a/src/lxc/pam/pam_cgfs.c b/src/lxc/pam/pam_cgfs.c
14 index 3df8daef..5c272b0e 100644
15 --- a/src/lxc/pam/pam_cgfs.c
16 +++ b/src/lxc/pam/pam_cgfs.c
17 @@ -223,6 +223,20 @@ static bool cgv2_prune_empty_cgroups(const char *user);
18 static bool cgv2_remove(const char *cgroup);
19 static bool is_cgv2(char *line);
21 +static int do_mkdir(const char *path, mode_t mode)
28 + r = mkdir(path, mode);
29 + saved_errno = errno;
31 + errno = saved_errno;
35 /* Create directory and (if necessary) its parents. */
36 static bool mkdir_parent(const char *root, char *path)
38 @@ -252,7 +266,7 @@ static bool mkdir_parent(const char *root, char *path)
39 if (file_exists(path))
42 - if (mkdir(path, 0755) < 0) {
43 + if (do_mkdir(path, 0755) < 0) {
44 pam_cgfs_debug("Failed to create %s: %s.\n", path, strerror(errno));
47 @@ -1963,7 +1977,7 @@ static bool cgv1_handle_cpuset_hierarchy(struct cgv1_hierarchy *h,
48 cgpath = must_make_path(h->mountpoint, h->base_cgroup, cgroup, NULL);
51 - if (mkdir(cgpath, 0755) < 0 && errno != EEXIST) {
52 + if (do_mkdir(cgpath, 0755) < 0 && errno != EEXIST) {
53 pam_cgfs_debug("Failed to create '%s'", cgpath);