projects
/
oweals
/
busybox.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ls: make --color more compatible with coreutils
[oweals/busybox.git]
/
coreutils
/
chroot.c
diff --git
a/coreutils/chroot.c
b/coreutils/chroot.c
index 16c743fef37e0172e0a28e9c93e80c44a70b0411..9b3d700444cd47749142029b0d5ad298b518e376 100644
(file)
--- a/
coreutils/chroot.c
+++ b/
coreutils/chroot.c
@@
-9,9
+9,9
@@
/* BB_AUDIT SUSv3 N/A -- Matches GNU behavior. */
/* 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) {
int chroot_main(int argc, char **argv)
{
if (argc < 2) {
@@
-19,20
+19,19
@@
int chroot_main(int argc, char **argv)
}
++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;
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";
}
}
argv[1] = (char *) "-i";
}
-
execvp
(*argv, argv);
- bb_perror_msg_and_die("can
not execute %s
", *argv);
+
BB_EXECVP
(*argv, argv);
+ bb_perror_msg_and_die("can
't execute '%s'
", *argv);
}
}