summaryrefslogtreecommitdiffstats
path: root/mkdev.c
diff options
context:
space:
mode:
authorJohn Crispin <blogic@openwrt.org>2013-07-03 19:16:09 +0200
committerJohn Crispin <blogic@openwrt.org>2013-07-03 20:28:03 +0200
commit4ec2545ed6a0626715802a1c7919fe0e38436301 (patch)
tree218bd1e65c597ee92fc57ab8f6cc73385d367935 /mkdev.c
parenta2953547e345eb6dd4e48474ca1e48082d3d564f (diff)
downloadunitd-4ec2545ed6a0626715802a1c7919fe0e38436301.tar
unitd-4ec2545ed6a0626715802a1c7919fe0e38436301.zip
properly fix umask handling
https://dev.openwrt.org/ticket/13752 https://dev.openwrt.org/ticket/13794 Signed-off-by: John Crispin <blogic@openwrt.org>
Diffstat (limited to 'mkdev.c')
-rw-r--r--mkdev.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/mkdev.c b/mkdev.c
index d507939..0f55554 100644
--- a/mkdev.c
+++ b/mkdev.c
@@ -47,12 +47,15 @@ static bool find_pattern(const char *name)
static void make_dev(const char *path, bool block, int major, int minor)
{
+ unsigned int oldumask = umask(0);
unsigned int _mode = mode | (block ? S_IFBLK : S_IFCHR);
+
DEBUG(2, "Creating %s device %s(%d,%d)\n",
block ? "block" : "character",
path, major, minor);
mknod(path, _mode, makedev(major, minor));
+ umask(oldumask);
}
static void find_devs(bool block)