make 17 state-changing execing applets (ex: "nice PROG ARGS") noexec
The applets with "<applet> [opts] PROG ARGS" API very quickly exec
another program, noexec is okay for them:
chpst/envdir/envuidgid/softlimit/setuidgid
chroot
chrt
ionice
nice
nohup
setarch/linux32/linux64
taskset
cttyhack
"reset" and "sulogin" applets don't have this form, but also exec
another program at once, thus made noexec too.
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
diff --git a/coreutils/chroot.c b/coreutils/chroot.c
index 5645d72..78751df 100644
--- a/coreutils/chroot.c
+++ b/coreutils/chroot.c
@@ -13,7 +13,7 @@
//config: chroot is used to change the root directory and run a command.
//config: The default command is '/bin/sh'.
-//applet:IF_CHROOT(APPLET(chroot, BB_DIR_USR_SBIN, BB_SUID_DROP))
+//applet:IF_CHROOT(APPLET_NOEXEC(chroot, chroot, BB_DIR_USR_SBIN, BB_SUID_DROP, chroot))
//kbuild:lib-$(CONFIG_CHROOT) += chroot.o
@@ -40,6 +40,7 @@
++argv;
if (!*argv)
bb_show_usage();
+
xchroot(*argv);
++argv;
diff --git a/coreutils/nice.c b/coreutils/nice.c
index 0bf0552..d6818cf 100644
--- a/coreutils/nice.c
+++ b/coreutils/nice.c
@@ -12,7 +12,7 @@
//config: help
//config: nice runs a program with modified scheduling priority.
-//applet:IF_NICE(APPLET(nice, BB_DIR_BIN, BB_SUID_DROP))
+//applet:IF_NICE(APPLET_NOEXEC(nice, nice, BB_DIR_BIN, BB_SUID_DROP, nice))
//kbuild:lib-$(CONFIG_NICE) += nice.o
diff --git a/coreutils/nohup.c b/coreutils/nohup.c
index df271c7..8a70ec4 100644
--- a/coreutils/nohup.c
+++ b/coreutils/nohup.c
@@ -15,7 +15,7 @@
//config: help
//config: run a command immune to hangups, with output to a non-tty.
-//applet:IF_NOHUP(APPLET(nohup, BB_DIR_USR_BIN, BB_SUID_DROP))
+//applet:IF_NOHUP(APPLET_NOEXEC(nohup, nohup, BB_DIR_USR_BIN, BB_SUID_DROP, nohup))
//kbuild:lib-$(CONFIG_NOHUP) += nohup.o