diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2006-12-27 04:35:04 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2006-12-27 04:35:04 +0000 |
commit | 8d42f86b146871ae4c4cafd3801a85f381249a14 (patch) | |
tree | b963999fc54eddb65f1929b894f868e24851fc9c /coreutils/chroot.c | |
download | busybox-w32-8d42f86b146871ae4c4cafd3801a85f381249a14.tar.gz busybox-w32-8d42f86b146871ae4c4cafd3801a85f381249a14.tar.bz2 busybox-w32-8d42f86b146871ae4c4cafd3801a85f381249a14.zip |
Correcting branch name to be like previous ones
Diffstat (limited to 'coreutils/chroot.c')
-rw-r--r-- | coreutils/chroot.c | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/coreutils/chroot.c b/coreutils/chroot.c new file mode 100644 index 000000000..62cfdc244 --- /dev/null +++ b/coreutils/chroot.c | |||
@@ -0,0 +1,37 @@ | |||
1 | /* vi: set sw=4 ts=4: */ | ||
2 | /* | ||
3 | * Mini chroot implementation for busybox | ||
4 | * | ||
5 | * Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org> | ||
6 | * | ||
7 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. | ||
8 | */ | ||
9 | |||
10 | /* BB_AUDIT SUSv3 N/A -- Matches GNU behavior. */ | ||
11 | |||
12 | #include "busybox.h" | ||
13 | |||
14 | int chroot_main(int argc, char **argv) | ||
15 | { | ||
16 | if (argc < 2) { | ||
17 | bb_show_usage(); | ||
18 | } | ||
19 | |||
20 | ++argv; | ||
21 | if (chroot(*argv)) { | ||
22 | bb_perror_msg_and_die("cannot change root directory to %s", *argv); | ||
23 | } | ||
24 | xchdir("/"); | ||
25 | |||
26 | ++argv; | ||
27 | if (argc == 2) { | ||
28 | argv -= 2; | ||
29 | if (!(*argv = getenv("SHELL"))) { | ||
30 | *argv = (char *) DEFAULT_SHELL; | ||
31 | } | ||
32 | argv[1] = (char *) "-i"; | ||
33 | } | ||
34 | |||
35 | execvp(*argv, argv); | ||
36 | bb_perror_msg_and_die("cannot execute %s", *argv); | ||
37 | } | ||