From 5ea916753b300cf6c4a3d40d28d09e82a2544f86 Mon Sep 17 00:00:00 2001 From: Rob Landley Date: Mon, 29 Jun 2015 01:31:34 -0500 Subject: mkfifo -Z --- toys/posix/mkfifo.c | 19 +++++++++++++++++-- 1 file 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); } -- cgit v1.2.3