diff options
| author | Erik Andersen <andersen@codepoet.org> | 2000-05-20 00:40:08 +0000 |
|---|---|---|
| committer | Erik Andersen <andersen@codepoet.org> | 2000-05-20 00:40:08 +0000 |
| commit | 8ea7d8cdaf4a03cdc06abc8b752b589271140a88 (patch) | |
| tree | 955fc9545f490ca39f0c24629316b7d328612802 | |
| parent | 330fd2b5767110f29544131d4c72c77e0506b6df (diff) | |
| download | busybox-w32-8ea7d8cdaf4a03cdc06abc8b752b589271140a88.tar.gz busybox-w32-8ea7d8cdaf4a03cdc06abc8b752b589271140a88.tar.bz2 busybox-w32-8ea7d8cdaf4a03cdc06abc8b752b589271140a88.zip | |
First pass at fixing tar segfault, and more portability updates.
-Erik
| -rw-r--r-- | TODO | 5 | ||||
| -rw-r--r-- | archival/tar.c | 5 | ||||
| -rw-r--r-- | cmdedit.c | 6 | ||||
| -rw-r--r-- | fsck_minix.c | 1 | ||||
| -rw-r--r-- | internal.h | 12 | ||||
| -rw-r--r-- | mkfs_minix.c | 5 | ||||
| -rw-r--r-- | shell/cmdedit.c | 6 | ||||
| -rw-r--r-- | tar.c | 5 | ||||
| -rw-r--r-- | util-linux/fsck_minix.c | 1 | ||||
| -rw-r--r-- | util-linux/mkfs_minix.c | 5 |
10 files changed, 27 insertions, 24 deletions
| @@ -22,6 +22,11 @@ Bugs that need fixing: | |||
| 22 | - 'grep *foo file' segfaults | 22 | - 'grep *foo file' segfaults |
| 23 | - ps dirent race bug (need to stat the file before attempting chdir) | 23 | - ps dirent race bug (need to stat the file before attempting chdir) |
| 24 | 24 | ||
| 25 | |||
| 26 | /busybox tar tvf | ||
| 27 | Segmentation fault (core dumped) | ||
| 28 | |||
| 29 | |||
| 25 | ----------- | 30 | ----------- |
| 26 | 31 | ||
| 27 | * Make insmod actually work | 32 | * Make insmod actually work |
diff --git a/archival/tar.c b/archival/tar.c index 6784d80ff..c5aad45d6 100644 --- a/archival/tar.c +++ b/archival/tar.c | |||
| @@ -185,7 +185,7 @@ extern int tar_main(int argc, char **argv) | |||
| 185 | usage(tar_usage); | 185 | usage(tar_usage); |
| 186 | 186 | ||
| 187 | /* Parse any options */ | 187 | /* Parse any options */ |
| 188 | while (--argc > 0 && **(++argv) == '-') { | 188 | while (--argc > 0 && strspn(*(++argv), "-cxt") >0 ) { |
| 189 | stopIt=FALSE; | 189 | stopIt=FALSE; |
| 190 | while (stopIt==FALSE && *(++(*argv))) { | 190 | while (stopIt==FALSE && *(++(*argv))) { |
| 191 | switch (**argv) { | 191 | switch (**argv) { |
| @@ -265,7 +265,8 @@ extern int tar_main(int argc, char **argv) | |||
| 265 | #else | 265 | #else |
| 266 | exit(writeTarFile(tarName, tostdoutFlag, verboseFlag, argc, argv, excludeList)); | 266 | exit(writeTarFile(tarName, tostdoutFlag, verboseFlag, argc, argv, excludeList)); |
| 267 | #endif | 267 | #endif |
| 268 | } else { | 268 | } |
| 269 | if (listFlag == TRUE || extractFlag == TRUE) { | ||
| 269 | exit(readTarFile(tarName, extractFlag, listFlag, tostdoutFlag, verboseFlag, excludeList)); | 270 | exit(readTarFile(tarName, extractFlag, listFlag, tostdoutFlag, verboseFlag, excludeList)); |
| 270 | } | 271 | } |
| 271 | 272 | ||
| @@ -70,6 +70,12 @@ static struct history *his_end = NULL; /* Last element in command line list */ | |||
| 70 | 70 | ||
| 71 | /* Current termio and the previous termio before starting sh */ | 71 | /* Current termio and the previous termio before starting sh */ |
| 72 | struct termios initial_settings, new_settings; | 72 | struct termios initial_settings, new_settings; |
| 73 | |||
| 74 | |||
| 75 | #ifndef _POSIX_VDISABLE | ||
| 76 | #define _POSIX_VDISABLE '\0' | ||
| 77 | #endif | ||
| 78 | |||
| 73 | #endif | 79 | #endif |
| 74 | 80 | ||
| 75 | 81 | ||
diff --git a/fsck_minix.c b/fsck_minix.c index 7d27566b8..1e482f3f9 100644 --- a/fsck_minix.c +++ b/fsck_minix.c | |||
| @@ -97,6 +97,7 @@ | |||
| 97 | #include <termios.h> | 97 | #include <termios.h> |
| 98 | #include <mntent.h> | 98 | #include <mntent.h> |
| 99 | #include <sys/stat.h> | 99 | #include <sys/stat.h> |
| 100 | #include <sys/param.h> | ||
| 100 | 101 | ||
| 101 | #include <linux/fs.h> | 102 | #include <linux/fs.h> |
| 102 | #include <linux/minix_fs.h> | 103 | #include <linux/minix_fs.h> |
diff --git a/internal.h b/internal.h index 9c55f5a49..909bf6473 100644 --- a/internal.h +++ b/internal.h | |||
| @@ -284,18 +284,6 @@ int nfsmount(const char *spec, const char *node, unsigned long *flags, | |||
| 284 | char **extra_opts, char **mount_opts, int running_bg); | 284 | char **extra_opts, char **mount_opts, int running_bg); |
| 285 | #endif | 285 | #endif |
| 286 | 286 | ||
| 287 | #if defined (BB_FSCK_MINIX) || defined (BB_MKFS_MINIX) | ||
| 288 | /* Bit map related macros. */ | ||
| 289 | #ifndef setbit | ||
| 290 | #define CHAR_BITS 8 /* Number of bits in a `char'. */ | ||
| 291 | #define setbit(a,i) ((a)[(i)/CHAR_BITS] |= 1<<((i)%CHAR_BITS)) | ||
| 292 | #define clrbit(a,i) ((a)[(i)/CHAR_BITS] &= ~(1<<((i)%CHAR_BITS))) | ||
| 293 | #define isset(a,i) ((a)[(i)/CHAR_BITS] & (1<<((i)%CHAR_BITS))) | ||
| 294 | #define isclr(a,i) (((a)[(i)/CHAR_BITS] & (1<<((i)%CHAR_BITS))) == 0) | ||
| 295 | #endif | ||
| 296 | #endif | ||
| 297 | |||
| 298 | |||
| 299 | #ifndef RB_POWER_OFF | 287 | #ifndef RB_POWER_OFF |
| 300 | /* Stop system and switch power off if possable. */ | 288 | /* Stop system and switch power off if possable. */ |
| 301 | #define RB_POWER_OFF 0x4321fedc | 289 | #define RB_POWER_OFF 0x4321fedc |
diff --git a/mkfs_minix.c b/mkfs_minix.c index f4f1d0997..c6f057a07 100644 --- a/mkfs_minix.c +++ b/mkfs_minix.c | |||
| @@ -74,6 +74,7 @@ | |||
| 74 | #include <termios.h> | 74 | #include <termios.h> |
| 75 | #include <sys/stat.h> | 75 | #include <sys/stat.h> |
| 76 | #include <sys/ioctl.h> | 76 | #include <sys/ioctl.h> |
| 77 | #include <sys/param.h> | ||
| 77 | #include <mntent.h> | 78 | #include <mntent.h> |
| 78 | 79 | ||
| 79 | #include <linux/fs.h> | 80 | #include <linux/fs.h> |
| @@ -83,10 +84,6 @@ | |||
| 83 | #define HAVE_MINIX2 1 | 84 | #define HAVE_MINIX2 1 |
| 84 | #endif | 85 | #endif |
| 85 | 86 | ||
| 86 | #ifndef __GNUC__ | ||
| 87 | #error "needs gcc for the bitop-__asm__'s" | ||
| 88 | #endif | ||
| 89 | |||
| 90 | #ifndef __linux__ | 87 | #ifndef __linux__ |
| 91 | #define volatile | 88 | #define volatile |
| 92 | #endif | 89 | #endif |
diff --git a/shell/cmdedit.c b/shell/cmdedit.c index e4c88c265..22831b10c 100644 --- a/shell/cmdedit.c +++ b/shell/cmdedit.c | |||
| @@ -70,6 +70,12 @@ static struct history *his_end = NULL; /* Last element in command line list */ | |||
| 70 | 70 | ||
| 71 | /* Current termio and the previous termio before starting sh */ | 71 | /* Current termio and the previous termio before starting sh */ |
| 72 | struct termios initial_settings, new_settings; | 72 | struct termios initial_settings, new_settings; |
| 73 | |||
| 74 | |||
| 75 | #ifndef _POSIX_VDISABLE | ||
| 76 | #define _POSIX_VDISABLE '\0' | ||
| 77 | #endif | ||
| 78 | |||
| 73 | #endif | 79 | #endif |
| 74 | 80 | ||
| 75 | 81 | ||
| @@ -185,7 +185,7 @@ extern int tar_main(int argc, char **argv) | |||
| 185 | usage(tar_usage); | 185 | usage(tar_usage); |
| 186 | 186 | ||
| 187 | /* Parse any options */ | 187 | /* Parse any options */ |
| 188 | while (--argc > 0 && **(++argv) == '-') { | 188 | while (--argc > 0 && strspn(*(++argv), "-cxt") >0 ) { |
| 189 | stopIt=FALSE; | 189 | stopIt=FALSE; |
| 190 | while (stopIt==FALSE && *(++(*argv))) { | 190 | while (stopIt==FALSE && *(++(*argv))) { |
| 191 | switch (**argv) { | 191 | switch (**argv) { |
| @@ -265,7 +265,8 @@ extern int tar_main(int argc, char **argv) | |||
| 265 | #else | 265 | #else |
| 266 | exit(writeTarFile(tarName, tostdoutFlag, verboseFlag, argc, argv, excludeList)); | 266 | exit(writeTarFile(tarName, tostdoutFlag, verboseFlag, argc, argv, excludeList)); |
| 267 | #endif | 267 | #endif |
| 268 | } else { | 268 | } |
| 269 | if (listFlag == TRUE || extractFlag == TRUE) { | ||
| 269 | exit(readTarFile(tarName, extractFlag, listFlag, tostdoutFlag, verboseFlag, excludeList)); | 270 | exit(readTarFile(tarName, extractFlag, listFlag, tostdoutFlag, verboseFlag, excludeList)); |
| 270 | } | 271 | } |
| 271 | 272 | ||
diff --git a/util-linux/fsck_minix.c b/util-linux/fsck_minix.c index 7d27566b8..1e482f3f9 100644 --- a/util-linux/fsck_minix.c +++ b/util-linux/fsck_minix.c | |||
| @@ -97,6 +97,7 @@ | |||
| 97 | #include <termios.h> | 97 | #include <termios.h> |
| 98 | #include <mntent.h> | 98 | #include <mntent.h> |
| 99 | #include <sys/stat.h> | 99 | #include <sys/stat.h> |
| 100 | #include <sys/param.h> | ||
| 100 | 101 | ||
| 101 | #include <linux/fs.h> | 102 | #include <linux/fs.h> |
| 102 | #include <linux/minix_fs.h> | 103 | #include <linux/minix_fs.h> |
diff --git a/util-linux/mkfs_minix.c b/util-linux/mkfs_minix.c index f4f1d0997..c6f057a07 100644 --- a/util-linux/mkfs_minix.c +++ b/util-linux/mkfs_minix.c | |||
| @@ -74,6 +74,7 @@ | |||
| 74 | #include <termios.h> | 74 | #include <termios.h> |
| 75 | #include <sys/stat.h> | 75 | #include <sys/stat.h> |
| 76 | #include <sys/ioctl.h> | 76 | #include <sys/ioctl.h> |
| 77 | #include <sys/param.h> | ||
| 77 | #include <mntent.h> | 78 | #include <mntent.h> |
| 78 | 79 | ||
| 79 | #include <linux/fs.h> | 80 | #include <linux/fs.h> |
| @@ -83,10 +84,6 @@ | |||
| 83 | #define HAVE_MINIX2 1 | 84 | #define HAVE_MINIX2 1 |
| 84 | #endif | 85 | #endif |
| 85 | 86 | ||
| 86 | #ifndef __GNUC__ | ||
| 87 | #error "needs gcc for the bitop-__asm__'s" | ||
| 88 | #endif | ||
| 89 | |||
| 90 | #ifndef __linux__ | 87 | #ifndef __linux__ |
| 91 | #define volatile | 88 | #define volatile |
| 92 | #endif | 89 | #endif |
