style fixes. No code changes
This commit is contained in:
parent
50f7f446ec
commit
51742f4bb0
@ -124,7 +124,7 @@ static const unsigned short mode_mask[] = {
|
||||
0, S_IXOTH, S_IXOTH, 0 /* other */
|
||||
};
|
||||
|
||||
#define parse_error(x) do { errmsg = x; goto pe_label; } while(0)
|
||||
#define parse_error(x) do { errmsg = x; goto pe_label; } while (0)
|
||||
|
||||
static void parse_config_file(void)
|
||||
{
|
||||
|
@ -217,7 +217,7 @@ char* make_new_name_gunzip(char *filename)
|
||||
#endif
|
||||
) {
|
||||
extension[-1] = '\0';
|
||||
} else if(strcmp(extension, "tgz") == 0) {
|
||||
} else if (strcmp(extension, "tgz") == 0) {
|
||||
filename = xstrdup(filename);
|
||||
extension = strrchr(filename, '.');
|
||||
extension[2] = 'a';
|
||||
|
@ -47,7 +47,7 @@ aa: 85.1% -- replaced with aa.gz
|
||||
//#define DEBUG 1
|
||||
/* Diagnostic functions */
|
||||
#ifdef DEBUG
|
||||
# define Assert(cond,msg) {if(!(cond)) bb_error_msg(msg);}
|
||||
# define Assert(cond,msg) { if (!(cond)) bb_error_msg(msg); }
|
||||
# define Trace(x) fprintf x
|
||||
# define Tracev(x) {if (verbose) fprintf x ;}
|
||||
# define Tracevv(x) {if (verbose > 1) fprintf x ;}
|
||||
|
@ -676,7 +676,7 @@ static void handle_SIGCHLD(int status)
|
||||
/* child exited with 0 */
|
||||
return;
|
||||
/* Cannot happen?
|
||||
if(!WIFSIGNALED(status) && !WIFEXITED(status)) return; */
|
||||
if (!WIFSIGNALED(status) && !WIFEXITED(status)) return; */
|
||||
child_error = 1;
|
||||
}
|
||||
#endif
|
||||
|
@ -29,11 +29,11 @@ int rm_main(int argc, char **argv)
|
||||
opt_complementary = "f-i:i-f";
|
||||
opt = getopt32(argc, argv, "fiRr");
|
||||
argv += optind;
|
||||
if(opt & 1)
|
||||
if (opt & 1)
|
||||
flags |= FILEUTILS_FORCE;
|
||||
if(opt & 2)
|
||||
if (opt & 2)
|
||||
flags |= FILEUTILS_INTERACTIVE;
|
||||
if(opt & 12)
|
||||
if (opt & 12)
|
||||
flags |= FILEUTILS_RECUR;
|
||||
|
||||
if (*argv != NULL) {
|
||||
|
@ -183,7 +183,7 @@ static int do_stop(void)
|
||||
if (!quiet && killed) {
|
||||
printf("stopped %s (pid", what);
|
||||
for (p = found; p; p = p->next)
|
||||
if(p->pid < 0)
|
||||
if (p->pid < 0)
|
||||
printf(" %d", -p->pid);
|
||||
puts(")");
|
||||
}
|
||||
|
@ -2145,7 +2145,8 @@ static var *evaluate(node *op, var *res)
|
||||
X.rsm = newfile(R.s);
|
||||
if (! X.rsm->F) {
|
||||
if (opn == '|') {
|
||||
if((X.rsm->F = popen(R.s, "w")) == NULL)
|
||||
X.rsm->F = popen(R.s, "w");
|
||||
if (X.rsm->F == NULL)
|
||||
bb_perror_msg_and_die("popen");
|
||||
X.rsm->is_pipe = 1;
|
||||
} else {
|
||||
|
@ -62,7 +62,9 @@ static char *extract_filename(char *line, int patch_level)
|
||||
|
||||
/* skip over (patch_level) number of leading directories */
|
||||
for (i = 0; i < patch_level; i++) {
|
||||
if(!(temp = strchr(filename_start_ptr, '/'))) break;
|
||||
temp = strchr(filename_start_ptr, '/');
|
||||
if (!temp)
|
||||
break;
|
||||
filename_start_ptr = temp + 1;
|
||||
}
|
||||
|
||||
|
@ -447,7 +447,7 @@ static void edit_file(char * fn)
|
||||
q = p;
|
||||
p = strchr(q,'\n');
|
||||
if (p)
|
||||
while(*p == '\n')
|
||||
while (*p == '\n')
|
||||
*p++ = '\0';
|
||||
if (*q)
|
||||
colon(q);
|
||||
|
@ -141,7 +141,7 @@ static xlist_t *process_stdin(xlist_t *list_arg,
|
||||
} else {
|
||||
goto set;
|
||||
}
|
||||
} else { /* if(state == NORM) */
|
||||
} else { /* if (state == NORM) */
|
||||
if (ISSPACE(c)) {
|
||||
if (s) {
|
||||
unexpected_eof:
|
||||
|
@ -843,7 +843,7 @@ static void parse_inittab(void)
|
||||
for (a = actions; a->name != 0; a++) {
|
||||
if (strcmp(a->name, action) == 0) {
|
||||
if (*id != '\0') {
|
||||
if(strncmp(id, "/dev/", 5) == 0)
|
||||
if (strncmp(id, "/dev/", 5) == 0)
|
||||
id += 5;
|
||||
strcpy(tmpConsole, "/dev/");
|
||||
safe_strncpy(tmpConsole + 5, id,
|
||||
|
@ -254,7 +254,7 @@ int copy_file(const char *source, const char *dest, int flags)
|
||||
return -1;
|
||||
}
|
||||
if (con) {
|
||||
if(setfilecon(dest, con) == -1) {
|
||||
if (setfilecon(dest, con) == -1) {
|
||||
bb_perror_msg("setfilecon:%s,%s", dest, con);
|
||||
freecon(con);
|
||||
return -1;
|
||||
|
@ -50,17 +50,17 @@ int get_console_fd(void)
|
||||
|
||||
for (fd = 2; fd >= 0; fd--) {
|
||||
int fd4name;
|
||||
int choise_fd;
|
||||
int choice_fd;
|
||||
char arg;
|
||||
|
||||
fd4name = open_a_console(console_names[fd]);
|
||||
chk_std:
|
||||
choise_fd = (fd4name >= 0 ? fd4name : fd);
|
||||
choice_fd = (fd4name >= 0 ? fd4name : fd);
|
||||
|
||||
arg = 0;
|
||||
if (ioctl(choise_fd, KDGKBTYPE, &arg) == 0)
|
||||
return choise_fd;
|
||||
if(fd4name >= 0) {
|
||||
if (ioctl(choice_fd, KDGKBTYPE, &arg) == 0)
|
||||
return choice_fd;
|
||||
if (fd4name >= 0) {
|
||||
close(fd4name);
|
||||
fd4name = -1;
|
||||
goto chk_std;
|
||||
|
@ -17,7 +17,7 @@
|
||||
* end of line. If end isn't NULL, length of the chunk read is stored in it.
|
||||
* Return NULL if EOF/error */
|
||||
|
||||
char *bb_get_chunk_from_file(FILE * file, int *end)
|
||||
char *bb_get_chunk_from_file(FILE *file, int *end)
|
||||
{
|
||||
int ch;
|
||||
int idx = 0;
|
||||
@ -27,7 +27,8 @@ char *bb_get_chunk_from_file(FILE * file, int *end)
|
||||
while ((ch = getc(file)) != EOF) {
|
||||
/* grow the line buffer as necessary */
|
||||
if (idx >= linebufsz) {
|
||||
linebuf = xrealloc(linebuf, linebufsz += 80);
|
||||
linebufsz += 80;
|
||||
linebuf = xrealloc(linebuf, linebufsz);
|
||||
}
|
||||
linebuf[idx++] = (char) ch;
|
||||
if (!ch || (end && ch == '\n'))
|
||||
@ -49,7 +50,7 @@ char *bb_get_chunk_from_file(FILE * file, int *end)
|
||||
}
|
||||
|
||||
/* Get line, including trailing \n if any */
|
||||
char *xmalloc_fgets(FILE * file)
|
||||
char *xmalloc_fgets(FILE *file)
|
||||
{
|
||||
int i;
|
||||
|
||||
@ -57,7 +58,7 @@ char *xmalloc_fgets(FILE * file)
|
||||
}
|
||||
|
||||
/* Get line. Remove trailing \n */
|
||||
char *xmalloc_getline(FILE * file)
|
||||
char *xmalloc_getline(FILE *file)
|
||||
{
|
||||
int i;
|
||||
char *c = bb_get_chunk_from_file(file, &i);
|
||||
|
@ -43,7 +43,7 @@ void print_login_issue(const char *issue_file, const char *tty)
|
||||
outbuf = buf;
|
||||
buf[0] = c;
|
||||
buf[1] = '\0';
|
||||
if(c == '\n') {
|
||||
if (c == '\n') {
|
||||
buf[1] = '\r';
|
||||
buf[2] = '\0';
|
||||
}
|
||||
|
@ -8,12 +8,8 @@
|
||||
* Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <ctype.h>
|
||||
#include "libbb.h"
|
||||
|
||||
|
||||
void trim(char *s)
|
||||
{
|
||||
size_t len = strlen(s);
|
||||
@ -23,9 +19,9 @@ void trim(char *s)
|
||||
while (len && isspace(s[len-1])) --len;
|
||||
|
||||
/* trim leading whitespace */
|
||||
if(len) {
|
||||
if (len) {
|
||||
lws = strspn(s, " \n\r\t\v");
|
||||
memmove(s, s + lws, len -= lws);
|
||||
}
|
||||
s[len] = 0;
|
||||
s[len] = '\0';
|
||||
}
|
||||
|
@ -48,7 +48,7 @@ int makedevs_main(int argc, char **argv)
|
||||
int sz;
|
||||
|
||||
sz = snprintf(buf, sizeof(buf), "%s%d", basedev, S);
|
||||
if(sz<0 || sz>=sizeof(buf)) /* libc different */
|
||||
if (sz < 0 || sz >= sizeof(buf)) /* libc different */
|
||||
bb_error_msg_and_die("%s too large", basedev);
|
||||
|
||||
/* if mode != S_IFCHR and != S_IFBLK third param in mknod() ignored */
|
||||
|
@ -3410,7 +3410,7 @@ static struct obj_file *obj_load(FILE * fp, int loadprogbits)
|
||||
sec->header = section_headers[i];
|
||||
sec->idx = i;
|
||||
|
||||
if(sec->header.sh_size) {
|
||||
if (sec->header.sh_size) {
|
||||
switch (sec->header.sh_type) {
|
||||
case SHT_NULL:
|
||||
case SHT_NOTE:
|
||||
@ -4219,17 +4219,17 @@ int insmod_main( int argc, char **argv)
|
||||
goto out;
|
||||
}
|
||||
|
||||
if(flag_print_load_map)
|
||||
if (flag_print_load_map)
|
||||
print_load_map(f);
|
||||
|
||||
exit_status = EXIT_SUCCESS;
|
||||
|
||||
out:
|
||||
#if ENABLE_FEATURE_CLEAN_UP
|
||||
if(fp)
|
||||
if (fp)
|
||||
fclose(fp);
|
||||
free(tmp1);
|
||||
if(!tmp1)
|
||||
if (!tmp1)
|
||||
free(m_name);
|
||||
free(m_filename);
|
||||
#endif
|
||||
|
@ -46,11 +46,11 @@ int rmmod_main(int argc, char **argv)
|
||||
|
||||
/* Parse command line. */
|
||||
n = getopt32(argc, argv, "wfa");
|
||||
if((n & 1)) // --wait
|
||||
if (n & 1) // --wait
|
||||
flags &= ~O_NONBLOCK;
|
||||
if((n & 2)) // --force
|
||||
if (n & 2) // --force
|
||||
flags |= O_TRUNC;
|
||||
if((n & 4)) {
|
||||
if (n & 4) {
|
||||
/* Unload _all_ unused modules via NULL delete_module() call */
|
||||
/* until the number of modules does not change */
|
||||
size_t nmod = 0; /* number of modules */
|
||||
|
@ -149,13 +149,13 @@ enum {
|
||||
/* Debug: squirt whatever message and sleep a bit so we can see it go by. */
|
||||
/* Beware: writes to stdOUT... */
|
||||
#if 0
|
||||
#define Debug(...) do { printf(__VA_ARGS__); printf("\n"); fflush(stdout); sleep(1); } while(0)
|
||||
#define Debug(...) do { printf(__VA_ARGS__); printf("\n"); fflush(stdout); sleep(1); } while (0)
|
||||
#else
|
||||
#define Debug(...) do { } while(0)
|
||||
#define Debug(...) do { } while (0)
|
||||
#endif
|
||||
|
||||
#define holler_error(...) do { if (o_verbose) bb_error_msg(__VA_ARGS__); } while(0)
|
||||
#define holler_perror(...) do { if (o_verbose) bb_perror_msg(__VA_ARGS__); } while(0)
|
||||
#define holler_error(...) do { if (o_verbose) bb_error_msg(__VA_ARGS__); } while (0)
|
||||
#define holler_perror(...) do { if (o_verbose) bb_perror_msg(__VA_ARGS__); } while (0)
|
||||
|
||||
/* catch: no-brainer interrupt handler */
|
||||
static void catch(int sig)
|
||||
|
@ -147,7 +147,7 @@ int nslookup_main(int argc, char **argv)
|
||||
/* (but it also says "may be enabled in /etc/resolv.conf|) */
|
||||
/*_res.options |= RES_USE_INET6;*/
|
||||
|
||||
if(argc == 3)
|
||||
if (argc == 3)
|
||||
set_default_dns(argv[2]);
|
||||
|
||||
server_print();
|
||||
|
@ -174,7 +174,7 @@ static void INET_setroute(int action, char **args)
|
||||
|
||||
/* recognize x.x.x.x/mask format. */
|
||||
prefix = strchr(target, '/');
|
||||
if(prefix) {
|
||||
if (prefix) {
|
||||
int prefix_len;
|
||||
|
||||
prefix_len = xatoul_range(prefix+1, 0, 32);
|
||||
@ -193,7 +193,7 @@ static void INET_setroute(int action, char **args)
|
||||
if (isnet < 0) {
|
||||
bb_error_msg_and_die("resolving %s", target);
|
||||
}
|
||||
if(prefix) {
|
||||
if (prefix) {
|
||||
/* do not destroy prefix for process args */
|
||||
*prefix = '/';
|
||||
}
|
||||
|
@ -301,14 +301,16 @@ int sysctl_display_all(const char *path, int output, int show_table)
|
||||
char *tmpdir;
|
||||
struct stat ts;
|
||||
|
||||
if (!(dp = opendir(path))) {
|
||||
dp = opendir(path);
|
||||
if (!dp) {
|
||||
retval = -1;
|
||||
} else {
|
||||
while ((de = readdir(dp)) != NULL) {
|
||||
tmpdir = concat_subpath_file(path, de->d_name);
|
||||
if(tmpdir == NULL)
|
||||
if (tmpdir == NULL)
|
||||
continue;
|
||||
if ((retval2 = stat(tmpdir, &ts)) != 0)
|
||||
retval2 = stat(tmpdir, &ts);
|
||||
if (retval2 != 0)
|
||||
bb_perror_msg(tmpdir);
|
||||
else {
|
||||
if (S_ISDIR(ts.st_mode)) {
|
||||
|
@ -46,7 +46,7 @@ int uptime_main(int argc, char **argv)
|
||||
upminutes = (int) info.uptime / 60;
|
||||
uphours = (upminutes / 60) % 24;
|
||||
upminutes %= 60;
|
||||
if(uphours)
|
||||
if (uphours)
|
||||
printf("%2d:%02d, ", uphours, upminutes);
|
||||
else
|
||||
printf("%d min, ", upminutes);
|
||||
|
@ -178,7 +178,7 @@ void find_export_symbols(char * filename)
|
||||
fprintf(stderr, "docproc: ");
|
||||
perror(real_filename);
|
||||
}
|
||||
while(fgets(line, MAXLINESZ, fp)) {
|
||||
while (fgets(line, MAXLINESZ, fp)) {
|
||||
char *p;
|
||||
char *e;
|
||||
if (((p = strstr(line, "EXPORT_SYMBOL_GPL")) != 0) ||
|
||||
@ -291,7 +291,7 @@ void parse_file(FILE *infile)
|
||||
{
|
||||
char line[MAXLINESZ];
|
||||
char * s;
|
||||
while(fgets(line, MAXLINESZ, infile)) {
|
||||
while (fgets(line, MAXLINESZ, infile)) {
|
||||
if (line[0] == '!') {
|
||||
s = line + 2;
|
||||
switch (line[1]) {
|
||||
|
@ -53,7 +53,7 @@ int matchpathcon_main(int argc, char **argv)
|
||||
bb_perror_msg_and_die("error while processing %s", prefix);
|
||||
}
|
||||
|
||||
while((path = *argv++) != NULL) {
|
||||
while ((path = *argv++) != NULL) {
|
||||
security_context_t con;
|
||||
int rc;
|
||||
|
||||
|
12
shell/bbsh.c
12
shell/bbsh.c
@ -68,7 +68,7 @@ struct pipeline {
|
||||
|
||||
static void free_list(void *list, void (*freeit)(void *data))
|
||||
{
|
||||
while(list) {
|
||||
while (list) {
|
||||
void **next = (void **)list;
|
||||
void *list_next = *next;
|
||||
freeit(list);
|
||||
@ -159,12 +159,12 @@ static int run_pipeline(struct pipeline *line)
|
||||
// Handle local commands. This is totally fake and plastic.
|
||||
if (cmd->argc==2 && !strcmp(cmd->argv[0],"cd"))
|
||||
chdir(cmd->argv[1]);
|
||||
else if(!strcmp(cmd->argv[0],"exit"))
|
||||
else if (!strcmp(cmd->argv[0],"exit"))
|
||||
exit(cmd->argc>1 ? atoi(cmd->argv[1]) : 0);
|
||||
else {
|
||||
int status;
|
||||
pid_t pid=fork();
|
||||
if(!pid) {
|
||||
if (!pid) {
|
||||
run_applet_and_exit(cmd->argv[0],cmd->argc,cmd->argv);
|
||||
execvp(cmd->argv[0],cmd->argv);
|
||||
printf("No %s",cmd->argv[0]);
|
||||
@ -179,7 +179,7 @@ static void free_cmd(void *data)
|
||||
{
|
||||
struct command *cmd=(struct command *)data;
|
||||
|
||||
while(cmd->argc) free(cmd->argv[--cmd->argc]);
|
||||
while (cmd->argc) free(cmd->argv[--cmd->argc]);
|
||||
}
|
||||
|
||||
|
||||
@ -211,8 +211,8 @@ int bbsh_main(int argc, char **argv)
|
||||
else {
|
||||
unsigned cmdlen=0;
|
||||
for (;;) {
|
||||
if(!f) putchar('$');
|
||||
if(1 > getline(&command, &cmdlen,f ? : stdin)) break;
|
||||
if (!f) putchar('$');
|
||||
if (1 > getline(&command, &cmdlen,f ? : stdin)) break;
|
||||
|
||||
handle(command);
|
||||
}
|
||||
|
24
shell/msh.c
24
shell/msh.c
@ -92,21 +92,21 @@ extern char **environ;
|
||||
#ifdef MSHDEBUG
|
||||
int mshdbg = MSHDEBUG;
|
||||
|
||||
#define DBGPRINTF(x) if(mshdbg>0)printf x
|
||||
#define DBGPRINTF0(x) if(mshdbg>0)printf x
|
||||
#define DBGPRINTF1(x) if(mshdbg>1)printf x
|
||||
#define DBGPRINTF2(x) if(mshdbg>2)printf x
|
||||
#define DBGPRINTF3(x) if(mshdbg>3)printf x
|
||||
#define DBGPRINTF4(x) if(mshdbg>4)printf x
|
||||
#define DBGPRINTF5(x) if(mshdbg>5)printf x
|
||||
#define DBGPRINTF6(x) if(mshdbg>6)printf x
|
||||
#define DBGPRINTF7(x) if(mshdbg>7)printf x
|
||||
#define DBGPRINTF8(x) if(mshdbg>8)printf x
|
||||
#define DBGPRINTF9(x) if(mshdbg>9)printf x
|
||||
#define DBGPRINTF(x) if (mshdbg>0) printf x
|
||||
#define DBGPRINTF0(x) if (mshdbg>0) printf x
|
||||
#define DBGPRINTF1(x) if (mshdbg>1) printf x
|
||||
#define DBGPRINTF2(x) if (mshdbg>2) printf x
|
||||
#define DBGPRINTF3(x) if (mshdbg>3) printf x
|
||||
#define DBGPRINTF4(x) if (mshdbg>4) printf x
|
||||
#define DBGPRINTF5(x) if (mshdbg>5) printf x
|
||||
#define DBGPRINTF6(x) if (mshdbg>6) printf x
|
||||
#define DBGPRINTF7(x) if (mshdbg>7) printf x
|
||||
#define DBGPRINTF8(x) if (mshdbg>8) printf x
|
||||
#define DBGPRINTF9(x) if (mshdbg>9) printf x
|
||||
|
||||
int mshdbg_rc = 0;
|
||||
|
||||
#define RCPRINTF(x) if(mshdbg_rc)printf x
|
||||
#define RCPRINTF(x) if (mshdbg_rc) printf x
|
||||
|
||||
#else
|
||||
|
||||
|
@ -138,7 +138,7 @@ static void append_mount_options(char **oldopts, const char *newopts)
|
||||
&& (p[len]==',' || p[len]==0))
|
||||
goto skip;
|
||||
p = strchr(p,',');
|
||||
if(!p) break;
|
||||
if (!p) break;
|
||||
p++;
|
||||
}
|
||||
p = xasprintf("%s,%.*s", *oldopts, len, newopts);
|
||||
|
@ -24,7 +24,7 @@
|
||||
#define MS_MOVE 8192
|
||||
#endif
|
||||
|
||||
dev_t rootdev;
|
||||
static dev_t rootdev;
|
||||
|
||||
// Recursively delete contents of rootfs.
|
||||
|
||||
@ -39,12 +39,13 @@ static void delete_contents(const char *directory)
|
||||
|
||||
// Recursively delete the contents of directories.
|
||||
if (S_ISDIR(st.st_mode)) {
|
||||
if((dir = opendir(directory))) {
|
||||
dir = opendir(directory);
|
||||
if (dir) {
|
||||
while ((d = readdir(dir))) {
|
||||
char *newdir=d->d_name;
|
||||
char *newdir = d->d_name;
|
||||
|
||||
// Skip . and ..
|
||||
if(*newdir=='.' && (!newdir[1] || (newdir[1]=='.' && !newdir[2])))
|
||||
if (*newdir=='.' && (!newdir[1] || (newdir[1]=='.' && !newdir[2])))
|
||||
continue;
|
||||
|
||||
// Recurse to delete contents
|
||||
@ -66,7 +67,7 @@ static void delete_contents(const char *directory)
|
||||
int switch_root_main(int argc, char **argv);
|
||||
int switch_root_main(int argc, char **argv)
|
||||
{
|
||||
char *newroot, *console=NULL;
|
||||
char *newroot, *console = NULL;
|
||||
struct stat st1, st2;
|
||||
struct statfs stfs;
|
||||
|
||||
@ -77,18 +78,18 @@ int switch_root_main(int argc, char **argv)
|
||||
|
||||
// Change to new root directory and verify it's a different fs.
|
||||
|
||||
newroot=argv[optind++];
|
||||
newroot = argv[optind++];
|
||||
|
||||
if (chdir(newroot) || lstat(".", &st1) || lstat("/", &st2) ||
|
||||
st1.st_dev == st2.st_dev)
|
||||
{
|
||||
bb_error_msg_and_die("bad newroot %s", newroot);
|
||||
}
|
||||
rootdev=st2.st_dev;
|
||||
rootdev = st2.st_dev;
|
||||
|
||||
// Additional sanity checks: we're about to rm -rf /, so be REALLY SURE
|
||||
// we mean it. (I could make this a CONFIG option, but I would get email
|
||||
// from all the people who WILL eat their filesystemss.)
|
||||
// from all the people who WILL eat their filesystems.)
|
||||
|
||||
if (lstat("/init", &st1) || !S_ISREG(st1.st_mode) || statfs("/", &stfs) ||
|
||||
(stfs.f_type != RAMFS_MAGIC && stfs.f_type != TMPFS_MAGIC) ||
|
||||
@ -105,14 +106,13 @@ int switch_root_main(int argc, char **argv)
|
||||
// recalculate "." and ".." links.
|
||||
|
||||
if (mount(".", "/", NULL, MS_MOVE, NULL) || chroot(".") || chdir("/"))
|
||||
bb_error_msg_and_die("moving root");
|
||||
bb_error_msg_and_die("error moving root");
|
||||
|
||||
// If a new console specified, redirect stdin/stdout/stderr to that.
|
||||
|
||||
if (console) {
|
||||
close(0);
|
||||
if (open(console, O_RDWR) < 0)
|
||||
bb_error_msg_and_die("bad console '%s'", console);
|
||||
xopen(console, O_RDWR);
|
||||
dup2(0, 1);
|
||||
dup2(0, 2);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user