X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;ds=sidebyside;f=coreutils%2Fchroot.c;h=9b3d700444cd47749142029b0d5ad298b518e376;hb=ae05dd42ca809d81f7025d29701d4641f1a996bf;hp=16c743fef37e0172e0a28e9c93e80c44a70b0411;hpb=06af2165288cd6516b89001ec9e24992619230e0;p=oweals%2Fbusybox.git diff --git a/coreutils/chroot.c b/coreutils/chroot.c index 16c743fef..9b3d70044 100644 --- a/coreutils/chroot.c +++ b/coreutils/chroot.c @@ -9,9 +9,9 @@ /* BB_AUDIT SUSv3 N/A -- Matches GNU behavior. */ -#include "busybox.h" +#include "libbb.h" -int chroot_main(int argc, char **argv); +int chroot_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; int chroot_main(int argc, char **argv) { if (argc < 2) { @@ -19,20 +19,19 @@ int chroot_main(int argc, char **argv) } ++argv; - if (chroot(*argv)) { - bb_perror_msg_and_die("cannot change root directory to %s", *argv); - } + xchroot(*argv); xchdir("/"); ++argv; if (argc == 2) { argv -= 2; - if (!(*argv = getenv("SHELL"))) { - *argv = (char *) DEFAULT_SHELL; + argv[0] = getenv("SHELL"); + if (!argv[0]) { + argv[0] = (char *) DEFAULT_SHELL; } argv[1] = (char *) "-i"; } - execvp(*argv, argv); - bb_perror_msg_and_die("cannot execute %s", *argv); + BB_EXECVP(*argv, argv); + bb_perror_msg_and_die("can't execute '%s'", *argv); }