summaryrefslogtreecommitdiff
path: root/coreutils/libcoreutils/getopt_mk_fifo_nod.c
diff options
context:
space:
mode:
Diffstat (limited to 'coreutils/libcoreutils/getopt_mk_fifo_nod.c')
-rw-r--r--coreutils/libcoreutils/getopt_mk_fifo_nod.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/coreutils/libcoreutils/getopt_mk_fifo_nod.c b/coreutils/libcoreutils/getopt_mk_fifo_nod.c
index 2227171..47375ff 100644
--- a/coreutils/libcoreutils/getopt_mk_fifo_nod.c
+++ b/coreutils/libcoreutils/getopt_mk_fifo_nod.c
@@ -33,7 +33,9 @@ mode_t FAST_FUNC getopt_mk_fifo_nod(char **argv)
int opt;
opt = getopt32(argv, "m:" IF_SELINUX("Z:"), &smode IF_SELINUX(,&scontext));
if (opt & 1) {
- if (bb_parse_mode(smode, &mode))
+ mode = bb_parse_mode(smode, mode);
+ if (mode != (mode_t)-1) /* if mode is valid */
+ /* make future mknod/mkfifo set mode bits exactly */
umask(0);
}