Commit 3a32201c by Alexander Vladimirov Committed by Stéphane Graber

Set umask before populating /dev and restore it after.

According to docs, mknod clears each permission bit whose corresponding bit in the process umask is set, so we should fix it before creating device nodes. Signed-off-by: 's avatarAlexander Vladimirov <alexander.idkfa.vladimirov@gmail.com> Acked-by: 's avatarSerge E. Hallyn <serge.hallyn@ubuntu.com>
parent c5b908a2
...@@ -963,6 +963,7 @@ static int setup_autodev(char *root) ...@@ -963,6 +963,7 @@ static int setup_autodev(char *root)
struct lxc_devs *d; struct lxc_devs *d;
char path[MAXPATHLEN]; char path[MAXPATHLEN];
int i; int i;
mode_t cmask;
INFO("Creating initial consoles under %s/dev\n", root); INFO("Creating initial consoles under %s/dev\n", root);
...@@ -974,6 +975,7 @@ static int setup_autodev(char *root) ...@@ -974,6 +975,7 @@ static int setup_autodev(char *root)
run_makedev(path); run_makedev(path);
INFO("Populating /dev under %s\n", root); INFO("Populating /dev under %s\n", root);
cmask = umask(S_IXUSR | S_IXGRP | S_IXOTH);
for (i = 0; i < sizeof(lxc_devs) / sizeof(lxc_devs[0]); i++) { for (i = 0; i < sizeof(lxc_devs) / sizeof(lxc_devs[0]); i++) {
d = &lxc_devs[i]; d = &lxc_devs[i];
ret = snprintf(path, MAXPATHLEN, "%s/dev/%s", root, d->name); ret = snprintf(path, MAXPATHLEN, "%s/dev/%s", root, d->name);
...@@ -985,6 +987,7 @@ static int setup_autodev(char *root) ...@@ -985,6 +987,7 @@ static int setup_autodev(char *root)
return -1; return -1;
} }
} }
umask(cmask);
INFO("Populated /dev under %s\n", root); INFO("Populated /dev under %s\n", root);
return 0; return 0;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment