int chroot_main(int argc, char **argv)
{
+ char *prog;
+
if ((argc < 2) || (**(argv + 1) == '-')) {
usage(chroot_usage);
}
argv++;
if (chroot(*argv) || (chdir("/"))) {
- fprintf(stderr, "chroot: cannot change root directory to %s: %s\n",
+ fatalError("chroot: cannot change root directory to %s: %s\n",
*argv, strerror(errno));
- exit(FALSE);
}
argc--;
argv++;
if (argc >= 1) {
- fprintf(stderr, "command: %s\n", *argv);
+ prog = *argv;
execvp(*argv, argv);
} else {
- char *prog;
-
prog = getenv("SHELL");
if (!prog)
prog = "/bin/sh";
execlp(prog, prog, NULL);
}
- fprintf(stderr, "chroot: cannot execute %s: %s\n",
- *argv, strerror(errno));
- exit(FALSE);
+ fatalError("chroot: cannot execute %s: %s\n",
+ prog, strerror(errno));
+
}
int chroot_main(int argc, char **argv)
{
+ char *prog;
+
if ((argc < 2) || (**(argv + 1) == '-')) {
usage(chroot_usage);
}
argv++;
if (chroot(*argv) || (chdir("/"))) {
- fprintf(stderr, "chroot: cannot change root directory to %s: %s\n",
+ fatalError("chroot: cannot change root directory to %s: %s\n",
*argv, strerror(errno));
- exit(FALSE);
}
argc--;
argv++;
if (argc >= 1) {
- fprintf(stderr, "command: %s\n", *argv);
+ prog = *argv;
execvp(*argv, argv);
} else {
- char *prog;
-
prog = getenv("SHELL");
if (!prog)
prog = "/bin/sh";
execlp(prog, prog, NULL);
}
- fprintf(stderr, "chroot: cannot execute %s: %s\n",
- *argv, strerror(errno));
- exit(FALSE);
+ fatalError("chroot: cannot execute %s: %s\n",
+ prog, strerror(errno));
+
}