fix /dev/shm permissions, this time for real
authorDaniel Gimpelevich <daniel@gimpelevich.san-francisco.ca.us>
Wed, 17 Jun 2015 13:18:36 +0000 (06:18 -0700)
committerFelix Fietkau <nbd@openwrt.org>
Thu, 18 Jun 2015 06:33:36 +0000 (08:33 +0200)
Previous patch did not account for umask, now adding that.

Signed-off-by: Daniel Gimpelevich <daniel@gimpelevich.san-francisco.ca.us>
initd/early.c
plug/coldplug.c

index e57ea9d6207b7ec0c90b4af54f4c22ad7ed4964e..3f9cf6989825189d59afe09217d3bcaf1c260c76 100644 (file)
@@ -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
index 49a201748d2afcaeecb96acbfa7bba8ec6987177..d3a607d63098962673c4ba2b6866f64eb63b4a09 100644 (file)
@@ -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();