summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Andersen1999-11-03 16:52:50 +0000
committerEric Andersen1999-11-03 16:52:50 +0000
commitbe971d6b693ca9cd1c9aa9eb6053aa2592c40547 (patch)
tree218f56d6ffdbb873e3d00d0ba3c48a17451d6668
parent219d6f5e0cb4c8e1a9a5f554a8768c7afb12b0b4 (diff)
downloadbusybox-be971d6b693ca9cd1c9aa9eb6053aa2592c40547.zip
busybox-be971d6b693ca9cd1c9aa9eb6053aa2592c40547.tar.gz
More init fixes. Fixed sync segfault.
-Erik
-rw-r--r--Changelog1
-rw-r--r--archival/tar.c10
-rw-r--r--busybox.spec2
-rw-r--r--coreutils/sync.c4
-rw-r--r--examples/busybox.spec2
-rw-r--r--init.c30
-rw-r--r--init/init.c30
-rw-r--r--sync.c4
-rw-r--r--tar.c10
9 files changed, 45 insertions, 48 deletions
diff --git a/Changelog b/Changelog
index aa549bd..741b8eb 100644
--- a/Changelog
+++ b/Changelog
@@ -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
diff --git a/archival/tar.c b/archival/tar.c
index c7ef385..cd255f8 100644
--- a/archival/tar.c
+++ b/archival/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;
diff --git a/busybox.spec b/busybox.spec
index f44cdc7..0cc15d4 100644
--- a/busybox.spec
+++ b/busybox.spec
@@ -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
diff --git a/coreutils/sync.c b/coreutils/sync.c
index b9f52c8..cb4690c 100644
--- a/coreutils/sync.c
+++ b/coreutils/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());
}
diff --git a/examples/busybox.spec b/examples/busybox.spec
index f44cdc7..0cc15d4 100644
--- a/examples/busybox.spec
+++ b/examples/busybox.spec
@@ -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
diff --git a/init.c b/init.c
index 34eca8b..899e430 100644
--- a/init.c
+++ b/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 ) {
diff --git a/init/init.c b/init/init.c
index 34eca8b..899e430 100644
--- a/init/init.c
+++ b/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 ) {
diff --git a/sync.c b/sync.c
index b9f52c8..cb4690c 100644
--- a/sync.c
+++ b/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());
}
diff --git a/tar.c b/tar.c
index c7ef385..cd255f8 100644
--- a/tar.c
+++ b/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;