summaryrefslogtreecommitdiff
path: root/coreutils/chroot.c
diff options
context:
space:
mode:
authorDenys Vlasenko2017-08-04 19:55:01 +0200
committerDenys Vlasenko2017-08-04 19:55:01 +0200
commit5c527dc57e74c1b60c910dc1a3f3ec9683fca43d (patch)
tree03bbbda1f4869c079f381bea45c1cdbf6fcd35a7 /coreutils/chroot.c
parent6514785f95878911b3ec88e2367234df74c14cd4 (diff)
downloadbusybox-5c527dc57e74c1b60c910dc1a3f3ec9683fca43d.zip
busybox-5c527dc57e74c1b60c910dc1a3f3ec9683fca43d.tar.gz
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>
Diffstat (limited to 'coreutils/chroot.c')
-rw-r--r--coreutils/chroot.c3
1 files changed, 2 insertions, 1 deletions
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 @@ int chroot_main(int argc UNUSED_PARAM, char **argv)
++argv;
if (!*argv)
bb_show_usage();
+
xchroot(*argv);
++argv;