fix /dev/shm permissions, this time for real
[project/procd.git] / plug / coldplug.c
index 466b759..d3a607d 100644 (file)
@@ -40,12 +40,14 @@ static void udevtrigger_complete(struct uloop_process *proc, int ret)
 void procd_coldplug(void)
 {
        char *argv[] = { "udevtrigger", NULL };
 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");
 
        umount2("/dev/pts", MNT_DETACH);
        umount2("/dev/", MNT_DETACH);
        mount("tmpfs", "/dev", "tmpfs", 0, "mode=0755,size=512K");
-       mkdir("/dev/shm", 0755);
+       mkdir("/dev/shm", 01777);
        mkdir("/dev/pts", 0755);
        mkdir("/dev/pts", 0755);
+       umask(oldumask);
        mount("devpts", "/dev/pts", "devpts", 0, 0);
        udevtrigger.cb = udevtrigger_complete;
        udevtrigger.pid = fork();
        mount("devpts", "/dev/pts", "devpts", 0, 0);
        udevtrigger.cb = udevtrigger_complete;
        udevtrigger.pid = fork();