From 8559df08db51a2e5fe056e6a1c07984e51068eaf Mon Sep 17 00:00:00 2001 From: Daniel Gimpelevich Date: Wed, 17 Jun 2015 06:18:36 -0700 Subject: [PATCH] fix /dev/shm permissions, this time for real Previous patch did not account for umask, now adding that. Signed-off-by: Daniel Gimpelevich --- initd/early.c | 3 +++ plug/coldplug.c | 2 ++ 2 files changed, 5 insertions(+) diff --git a/initd/early.c b/initd/early.c index e57ea9d..3f9cf69 100644 --- a/initd/early.c +++ b/initd/early.c @@ -60,6 +60,8 @@ early_console(const char *dev) static void early_mounts(void) { + unsigned int oldumask = umask(0); + mount("proc", "/proc", "proc", MS_NOATIME, 0); mount("sysfs", "/sys", "sysfs", MS_NOATIME, 0); mount("none", "/sys/fs/cgroup", "cgroup", 0, 0); @@ -77,6 +79,7 @@ early_mounts(void) mkdir("/tmp/run", 0777); mkdir("/tmp/lock", 0777); mkdir("/tmp/state", 0777); + umask(oldumask); } static void diff --git a/plug/coldplug.c b/plug/coldplug.c index 49a2017..d3a607d 100644 --- a/plug/coldplug.c +++ b/plug/coldplug.c @@ -40,12 +40,14 @@ static void udevtrigger_complete(struct uloop_process *proc, int ret) void procd_coldplug(void) { char *argv[] = { "udevtrigger", NULL }; + unsigned int oldumask = umask(0); umount2("/dev/pts", MNT_DETACH); umount2("/dev/", MNT_DETACH); mount("tmpfs", "/dev", "tmpfs", 0, "mode=0755,size=512K"); mkdir("/dev/shm", 01777); mkdir("/dev/pts", 0755); + umask(oldumask); mount("devpts", "/dev/pts", "devpts", 0, 0); udevtrigger.cb = udevtrigger_complete; udevtrigger.pid = fork(); -- 2.25.1