libbb: make xchroot do a chdir("/") after chroot
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
39c2cb2e93
commit
0687a5b496
@ -31,7 +31,6 @@ int chroot_main(int argc UNUSED_PARAM, char **argv)
|
||||
if (!*argv)
|
||||
bb_show_usage();
|
||||
xchroot(*argv);
|
||||
xchdir("/");
|
||||
|
||||
++argv;
|
||||
if (!*argv) { /* no 2nd param (PROG), use shell */
|
||||
|
@ -362,6 +362,7 @@ void FAST_FUNC xchroot(const char *path)
|
||||
{
|
||||
if (chroot(path))
|
||||
bb_perror_msg_and_die("can't change root directory to %s", path);
|
||||
xchdir("/");
|
||||
}
|
||||
|
||||
// Print a warning message if opendir() fails, but don't die.
|
||||
|
@ -1179,8 +1179,7 @@ int ftpd_main(int argc UNUSED_PARAM, char **argv)
|
||||
#endif
|
||||
|
||||
if (argv[optind]) {
|
||||
xchdir(argv[optind]);
|
||||
chroot(".");
|
||||
xchroot(argv[optind]);
|
||||
}
|
||||
|
||||
//umask(077); - admin can set umask before starting us
|
||||
|
@ -224,7 +224,7 @@ static int sysctl_handle_preload_file(const char *filename)
|
||||
parser = config_open(filename);
|
||||
/* Must do it _after_ config_open(): */
|
||||
xchdir("/proc/sys");
|
||||
/* xchroot(".") - if you are paranoid */
|
||||
/* xchroot("/proc/sys") - if you are paranoid */
|
||||
|
||||
//TODO: ';' is comment char too
|
||||
//TODO: comment may be only at line start. "var=1 #abc" - "1 #abc" is the value
|
||||
@ -260,7 +260,7 @@ int sysctl_main(int argc UNUSED_PARAM, char **argv)
|
||||
return sysctl_handle_preload_file(*argv ? *argv : "/etc/sysctl.conf");
|
||||
}
|
||||
xchdir("/proc/sys");
|
||||
/* xchroot(".") - if you are paranoid */
|
||||
/* xchroot("/proc/sys") - if you are paranoid */
|
||||
if (opt & (FLAG_TABLE_FORMAT | FLAG_SHOW_ALL)) {
|
||||
return sysctl_act_recursive(".");
|
||||
}
|
||||
|
@ -417,8 +417,7 @@ int chpst_main(int argc UNUSED_PARAM, char **argv)
|
||||
}
|
||||
|
||||
if (opt & OPT_root) {
|
||||
xchdir(root);
|
||||
xchroot(".");
|
||||
xchroot(root);
|
||||
}
|
||||
|
||||
if (opt & OPT_u) {
|
||||
|
@ -114,7 +114,7 @@ int switch_root_main(int argc UNUSED_PARAM, char **argv)
|
||||
}
|
||||
xchroot(".");
|
||||
// The chdir is needed to recalculate "." and ".." links
|
||||
xchdir("/");
|
||||
/*xchdir("/"); - done in xchroot */
|
||||
|
||||
// If a new console specified, redirect stdin/stdout/stderr to it
|
||||
if (console) {
|
||||
|
Loading…
Reference in New Issue
Block a user