mesg: make in NOFORK

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko
2017-08-04 19:16:01 +02:00
parent 947b2391c0
commit 6514785f95
2 changed files with 31 additions and 26 deletions

View File

@@ -26,7 +26,7 @@
//config: If you set this option to N, "mesg y" will enable writing
//config: by anybody at all. This is not recommended.
//applet:IF_MESG(APPLET(mesg, BB_DIR_USR_BIN, BB_SUID_DROP))
//applet:IF_MESG(APPLET_NOFORK(mesg, mesg, BB_DIR_USR_BIN, BB_SUID_DROP, mesg))
//kbuild:lib-$(CONFIG_MESG) += mesg.o
@@ -60,10 +60,15 @@ int mesg_main(int argc UNUSED_PARAM, char **argv)
bb_show_usage();
}
/* We are a NOFORK applet.
* (Not that it's very useful, but code is trivially NOFORK-safe).
* Play nice. Do not leak anything.
*/
if (!isatty(STDIN_FILENO))
bb_error_msg_and_die("not a tty");
xfstat(STDIN_FILENO, &sb, "stderr");
xfstat(STDIN_FILENO, &sb, "stdin");
if (c == 0) {
puts((sb.st_mode & (S_IWGRP|S_IWOTH)) ? "is y" : "is n");
return EXIT_SUCCESS;