X-Git-Url: http://git.archive.openwrt.org/?a=blobdiff_plain;f=plug%2Fcoldplug.c;h=c6a89c30a6fc2e11539f7643d4fde41c12bbbf62;hb=3db4e6d21ef85c3fbf1d7e0ae36bd1f039fec255;hp=bfd3513ce4f45496eb1da637f9df5526ff32e7f6;hpb=b6618ffab8ed4981c57f53929276559698541462;p=project%2Fprocd.git diff --git a/plug/coldplug.c b/plug/coldplug.c index bfd3513..c6a89c3 100644 --- a/plug/coldplug.c +++ b/plug/coldplug.c @@ -19,6 +19,7 @@ #include #include "../procd.h" +#include "../libc-compat.h" #include "hotplug.h" @@ -44,21 +45,21 @@ void procd_coldplug(void) umount2("/dev/pts", MNT_DETACH); umount2("/dev/", MNT_DETACH); - mount("tmpfs", "/dev", "tmpfs", 0, "mode=0755,size=512K"); - symlink("/tmp/shm", "/dev/shm"); + mount("tmpfs", "/dev", "tmpfs", MS_NOSUID, "mode=0755,size=512K"); + ignore(symlink("/tmp/shm", "/dev/shm")); mkdir("/dev/pts", 0755); umask(oldumask); - mount("devpts", "/dev/pts", "devpts", 0, 0); + mount("devpts", "/dev/pts", "devpts", MS_NOEXEC | MS_NOSUID, 0); udevtrigger.cb = udevtrigger_complete; udevtrigger.pid = fork(); if (!udevtrigger.pid) { execvp(argv[0], argv); - ERROR("Failed to start coldplug\n"); + ERROR("Failed to start coldplug: %m\n"); exit(-1); } if (udevtrigger.pid <= 0) { - ERROR("Failed to start new coldplug instance\n"); + ERROR("Failed to start new coldplug instance: %m\n"); return; }