From 8c0d2d2bc557ced86650ab48ab92cf58840efce8 Mon Sep 17 00:00:00 2001 From: Elliott Hughes Date: Wed, 1 Jul 2015 14:56:07 -0500 Subject: [PATCH] Improve -Z error reporting. The most likely reason for setfscreatecon to fail is that you don't have permission, and that's reported by the write return EACCES. There isn't really a "bad" context; they're just strings. Before: $ adb shell mkdir -Z x y mkdir: bad -Z 'x' After: $ adb shell mkdir -Z x y mkdir: -Z 'x' failed: Permission denied Other than this, the ToT mkdir works fine with SELinux. --- toys/lsb/mknod.c | 2 +- toys/posix/mkdir.c | 2 +- toys/posix/mkfifo.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/toys/lsb/mknod.c b/toys/lsb/mknod.c index d6cd65c..39073fa 100644 --- a/toys/lsb/mknod.c +++ b/toys/lsb/mknod.c @@ -52,7 +52,7 @@ void mknod_main(void) if (toys.optflags & FLAG_Z) if (-1 == lsm_set_create(TT.arg_context)) - error_exit("bad -Z '%s'", TT.arg_context); + perror_exit("-Z '%s' failed", TT.arg_context); if (mknod(*toys.optargs, mode|modes[type], makedev(major, minor))) perror_exit("%s", *toys.optargs); } diff --git a/toys/posix/mkdir.c b/toys/posix/mkdir.c index 438e38e..95bdf33 100644 --- a/toys/posix/mkdir.c +++ b/toys/posix/mkdir.c @@ -43,7 +43,7 @@ void mkdir_main(void) if (CFG_MKDIR_Z && (toys.optflags&FLAG_Z)) if (0>lsm_set_create(TT.arg_context)) - error_exit("bad -Z '%s'", TT.arg_context); + perror_exit("-Z '%s' failed", TT.arg_context); if (TT.arg_mode) mode = string_to_mode(TT.arg_mode, 0777); diff --git a/toys/posix/mkfifo.c b/toys/posix/mkfifo.c index 7bc43cc..9aa3a3a 100644 --- a/toys/posix/mkfifo.c +++ b/toys/posix/mkfifo.c @@ -43,7 +43,7 @@ void mkfifo_main(void) if (CFG_MKFIFO_Z && (toys.optflags&FLAG_Z)) if (0>lsm_set_create(TT.Z)) - error_exit("bad -Z '%s'", TT.Z); + perror_exit("-Z '%s' failed", TT.Z); for (s = toys.optargs; *s; s++) if (mknod(*s, S_IFIFO | TT.mode, 0) < 0) perror_msg("%s", *s); -- 2.7.4