aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Landley <rob@landley.net>2015-06-29 01:31:34 -0500
committerRob Landley <rob@landley.net>2015-06-29 01:31:34 -0500
commit5ea916753b300cf6c4a3d40d28d09e82a2544f86 (patch)
tree61c51e3f4e9c74eb290b2bd75a15f1b03a4b886b
parente71e3acda9ded7c90ecd3e6fe443c956e6b11700 (diff)
downloadtoybox-5ea916753b300cf6c4a3d40d28d09e82a2544f86.tar.gz
mkfifo -Z
-rw-r--r--toys/posix/mkfifo.c19
1 files changed, 17 insertions, 2 deletions
diff --git a/toys/posix/mkfifo.c b/toys/posix/mkfifo.c
index 4e0fca3f..7bc43cce 100644
--- a/toys/posix/mkfifo.c
+++ b/toys/posix/mkfifo.c
@@ -4,15 +4,24 @@
*
* See http://opengroup.org/onlinepubs/9699919799/utilities/mkfifo.html
-USE_MKFIFO(NEWTOY(mkfifo, "<1m:", TOYFLAG_USR|TOYFLAG_BIN))
+USE_MKFIFO(NEWTOY(mkfifo, "<1"USE_MKFIFO_Z("Z")"m:", TOYFLAG_USR|TOYFLAG_BIN))
config MKFIFO
bool "mkfifo"
default y
help
- usage: mkfifo [fifo_name...]
+ usage: mkfifo [NAME...]
Create FIFOs (named pipes).
+
+config MKFIFO_Z
+ bool
+ default y
+ depends on MKFIFO && !TOYBOX_LSM_NONE
+ help
+ usage: mkfifo [-Z CONTEXT]
+
+ -Z Security context
*/
#define FOR_mkfifo
@@ -20,6 +29,8 @@ config MKFIFO
GLOBALS(
char *m_string;
+ char *Z;
+
mode_t mode;
)
@@ -30,6 +41,10 @@ void mkfifo_main(void)
TT.mode = 0666;
if (toys.optflags & FLAG_m) TT.mode = string_to_mode(TT.m_string, 0);
+ if (CFG_MKFIFO_Z && (toys.optflags&FLAG_Z))
+ if (0>lsm_set_create(TT.Z))
+ error_exit("bad -Z '%s'", TT.Z);
+
for (s = toys.optargs; *s; s++)
if (mknod(*s, S_IFIFO | TT.mode, 0) < 0) perror_msg("%s", *s);
}