More init fixes. Fixed sync segfault.
-Erik
This commit is contained in:
parent
219d6f5e0c
commit
be971d6b69
@ -8,6 +8,7 @@
|
||||
* Major adjustment of init.c. Code is now readable IMHO,
|
||||
and much more solid.
|
||||
* Wrote sed -- weighs only 1.8k (5.8k with full regular expressions!).
|
||||
* Fixed a stupid seg-fault in sync
|
||||
|
||||
-Erik Andersen
|
||||
|
||||
|
@ -37,8 +37,8 @@
|
||||
|
||||
|
||||
static const char tar_usage[] =
|
||||
"Create, extract, or list files from a TAR file\n\n"
|
||||
"usage: tar -[cxtvOf] [tarFileName] [FILE] ...\n"
|
||||
"tar -[cxtvOf] [tarFileName] [FILE] ...\n"
|
||||
"Create, extract, or list files from a tar file\n\n"
|
||||
"\tc=create, x=extract, t=list contents, v=verbose,\n"
|
||||
"\tO=extract to stdout, f=tarfile or \"-\" for stdin\n";
|
||||
|
||||
@ -151,10 +151,8 @@ extern int tar_main (int argc, char **argv)
|
||||
argc--;
|
||||
argv++;
|
||||
|
||||
if (argc < 1) {
|
||||
fprintf (stderr, "%s", tar_usage);
|
||||
exit (FALSE);
|
||||
}
|
||||
if (argc < 1)
|
||||
usage( tar_usage);
|
||||
|
||||
|
||||
errorFlag = FALSE;
|
||||
|
@ -30,7 +30,7 @@ h=`cat busybox.links`
|
||||
|
||||
for i in $h ; do
|
||||
mkdir -p $RPM_BUILD_ROOT/`echo $i | sed -e 's/\(^.*\/\)\(.*\)/\1/g' `
|
||||
(cd $RPM_BUILD_ROOT/bin ; ln -s ln `echo $i | sed -e 's/\(^.*\/\)\(.*\)/\2/g' ` );
|
||||
(cd $RPM_BUILD_ROOT/bin ; ln -s busybox `echo $i | sed -e 's/\(^.*\/\)\(.*\)/\2/g' ` );
|
||||
done
|
||||
rm -f $RPM_BUILD_ROOT/bin/busybox
|
||||
install -m 755 busybox $RPM_BUILD_ROOT/bin/busybox
|
||||
|
@ -26,9 +26,9 @@
|
||||
extern int
|
||||
sync_main(int argc, char * * argv)
|
||||
{
|
||||
if ( **(argv+1) == '-' ) {
|
||||
if ( argc>1 && **(argv+1) == '-' ) {
|
||||
usage( "sync\nWrite all buffered filesystem blocks to disk.\n");
|
||||
}
|
||||
return sync();
|
||||
exit( sync());
|
||||
}
|
||||
|
||||
|
@ -30,7 +30,7 @@ h=`cat busybox.links`
|
||||
|
||||
for i in $h ; do
|
||||
mkdir -p $RPM_BUILD_ROOT/`echo $i | sed -e 's/\(^.*\/\)\(.*\)/\1/g' `
|
||||
(cd $RPM_BUILD_ROOT/bin ; ln -s ln `echo $i | sed -e 's/\(^.*\/\)\(.*\)/\2/g' ` );
|
||||
(cd $RPM_BUILD_ROOT/bin ; ln -s busybox `echo $i | sed -e 's/\(^.*\/\)\(.*\)/\2/g' ` );
|
||||
done
|
||||
rm -f $RPM_BUILD_ROOT/bin/busybox
|
||||
install -m 755 busybox $RPM_BUILD_ROOT/bin/busybox
|
||||
|
30
init.c
30
init.c
@ -45,18 +45,18 @@
|
||||
//#define DEBUG_INIT
|
||||
|
||||
#define CONSOLE "/dev/console" /* Logical system console */
|
||||
#define VT_PRIMARY "/dev/tty0" /* Primary virtual console */
|
||||
#define VT_SECONDARY "/dev/tty1" /* Virtual console */
|
||||
#define VT_LOG "/dev/tty2" /* Virtual console */
|
||||
#define VT_PRIMARY "/dev/tty1" /* Primary virtual console */
|
||||
#define VT_SECONDARY "/dev/tty2" /* Virtual console */
|
||||
#define VT_LOG "/dev/tty3" /* Virtual console */
|
||||
#define SERIAL_CON0 "/dev/ttyS0" /* Primary serial console */
|
||||
#define SERIAL_CON1 "/dev/ttyS1" /* Serial console */
|
||||
#define SHELL "/bin/sh" /* Default shell */
|
||||
#define INITSCRIPT "/etc/init.d/rcS" /* Initscript. */
|
||||
#define PATH_DEFAULT "PATH=/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin"
|
||||
|
||||
static char *console = VT_PRIMARY;
|
||||
static char *second_terminal = VT_SECONDARY;
|
||||
static char *log = "/dev/tty3";
|
||||
static char *console = CONSOLE;
|
||||
static char *second_console = VT_SECONDARY;
|
||||
static char *log = VT_LOG;
|
||||
|
||||
|
||||
|
||||
@ -173,23 +173,23 @@ static void console_init()
|
||||
}
|
||||
#endif
|
||||
} else {
|
||||
console = VT_PRIMARY;
|
||||
tried_vtprimary++;
|
||||
console = CONSOLE;
|
||||
tried_devcons++;
|
||||
}
|
||||
|
||||
while ((fd = open(console, O_RDONLY | O_NONBLOCK)) < 0) {
|
||||
/* Can't open selected console -- try vt1 */
|
||||
if (!tried_vtprimary) {
|
||||
tried_vtprimary++;
|
||||
console = VT_PRIMARY;
|
||||
continue;
|
||||
}
|
||||
/* Can't open selected console -- try /dev/console */
|
||||
if (!tried_devcons) {
|
||||
tried_devcons++;
|
||||
console = CONSOLE;
|
||||
continue;
|
||||
}
|
||||
/* Can't open selected console -- try vt1 */
|
||||
if (!tried_vtprimary) {
|
||||
tried_vtprimary++;
|
||||
console = VT_PRIMARY;
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (fd < 0)
|
||||
@ -449,7 +449,7 @@ extern int init_main(int argc, char **argv)
|
||||
pid1 = run(tty0_commands, console, wait_for_enter);
|
||||
}
|
||||
if (pid2 == 0 && tty1_commands) {
|
||||
pid2 = run(tty1_commands, second_terminal, TRUE);
|
||||
pid2 = run(tty1_commands, second_console, TRUE);
|
||||
}
|
||||
wpid = wait(&status);
|
||||
if (wpid > 0 ) {
|
||||
|
30
init/init.c
30
init/init.c
@ -45,18 +45,18 @@
|
||||
//#define DEBUG_INIT
|
||||
|
||||
#define CONSOLE "/dev/console" /* Logical system console */
|
||||
#define VT_PRIMARY "/dev/tty0" /* Primary virtual console */
|
||||
#define VT_SECONDARY "/dev/tty1" /* Virtual console */
|
||||
#define VT_LOG "/dev/tty2" /* Virtual console */
|
||||
#define VT_PRIMARY "/dev/tty1" /* Primary virtual console */
|
||||
#define VT_SECONDARY "/dev/tty2" /* Virtual console */
|
||||
#define VT_LOG "/dev/tty3" /* Virtual console */
|
||||
#define SERIAL_CON0 "/dev/ttyS0" /* Primary serial console */
|
||||
#define SERIAL_CON1 "/dev/ttyS1" /* Serial console */
|
||||
#define SHELL "/bin/sh" /* Default shell */
|
||||
#define INITSCRIPT "/etc/init.d/rcS" /* Initscript. */
|
||||
#define PATH_DEFAULT "PATH=/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin"
|
||||
|
||||
static char *console = VT_PRIMARY;
|
||||
static char *second_terminal = VT_SECONDARY;
|
||||
static char *log = "/dev/tty3";
|
||||
static char *console = CONSOLE;
|
||||
static char *second_console = VT_SECONDARY;
|
||||
static char *log = VT_LOG;
|
||||
|
||||
|
||||
|
||||
@ -173,23 +173,23 @@ static void console_init()
|
||||
}
|
||||
#endif
|
||||
} else {
|
||||
console = VT_PRIMARY;
|
||||
tried_vtprimary++;
|
||||
console = CONSOLE;
|
||||
tried_devcons++;
|
||||
}
|
||||
|
||||
while ((fd = open(console, O_RDONLY | O_NONBLOCK)) < 0) {
|
||||
/* Can't open selected console -- try vt1 */
|
||||
if (!tried_vtprimary) {
|
||||
tried_vtprimary++;
|
||||
console = VT_PRIMARY;
|
||||
continue;
|
||||
}
|
||||
/* Can't open selected console -- try /dev/console */
|
||||
if (!tried_devcons) {
|
||||
tried_devcons++;
|
||||
console = CONSOLE;
|
||||
continue;
|
||||
}
|
||||
/* Can't open selected console -- try vt1 */
|
||||
if (!tried_vtprimary) {
|
||||
tried_vtprimary++;
|
||||
console = VT_PRIMARY;
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (fd < 0)
|
||||
@ -449,7 +449,7 @@ extern int init_main(int argc, char **argv)
|
||||
pid1 = run(tty0_commands, console, wait_for_enter);
|
||||
}
|
||||
if (pid2 == 0 && tty1_commands) {
|
||||
pid2 = run(tty1_commands, second_terminal, TRUE);
|
||||
pid2 = run(tty1_commands, second_console, TRUE);
|
||||
}
|
||||
wpid = wait(&status);
|
||||
if (wpid > 0 ) {
|
||||
|
4
sync.c
4
sync.c
@ -26,9 +26,9 @@
|
||||
extern int
|
||||
sync_main(int argc, char * * argv)
|
||||
{
|
||||
if ( **(argv+1) == '-' ) {
|
||||
if ( argc>1 && **(argv+1) == '-' ) {
|
||||
usage( "sync\nWrite all buffered filesystem blocks to disk.\n");
|
||||
}
|
||||
return sync();
|
||||
exit( sync());
|
||||
}
|
||||
|
||||
|
10
tar.c
10
tar.c
@ -37,8 +37,8 @@
|
||||
|
||||
|
||||
static const char tar_usage[] =
|
||||
"Create, extract, or list files from a TAR file\n\n"
|
||||
"usage: tar -[cxtvOf] [tarFileName] [FILE] ...\n"
|
||||
"tar -[cxtvOf] [tarFileName] [FILE] ...\n"
|
||||
"Create, extract, or list files from a tar file\n\n"
|
||||
"\tc=create, x=extract, t=list contents, v=verbose,\n"
|
||||
"\tO=extract to stdout, f=tarfile or \"-\" for stdin\n";
|
||||
|
||||
@ -151,10 +151,8 @@ extern int tar_main (int argc, char **argv)
|
||||
argc--;
|
||||
argv++;
|
||||
|
||||
if (argc < 1) {
|
||||
fprintf (stderr, "%s", tar_usage);
|
||||
exit (FALSE);
|
||||
}
|
||||
if (argc < 1)
|
||||
usage( tar_usage);
|
||||
|
||||
|
||||
errorFlag = FALSE;
|
||||
|
Loading…
Reference in New Issue
Block a user