aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErik Andersen <andersen@codepoet.org>2000-04-28 22:10:34 +0000
committerErik Andersen <andersen@codepoet.org>2000-04-28 22:10:34 +0000
commit6ed02a0ee010a28b7649a9ef734679f7818c57e3 (patch)
tree7cb786c18876841a546f222f20e4b35e0bcf576a
parentabc199eb0cc485e42107595ca2d877c7724aced0 (diff)
downloadbusybox-w32-6ed02a0ee010a28b7649a9ef734679f7818c57e3.tar.gz
busybox-w32-6ed02a0ee010a28b7649a9ef734679f7818c57e3.tar.bz2
busybox-w32-6ed02a0ee010a28b7649a9ef734679f7818c57e3.zip
Fix stupid bugs. update was segfaulting. mknod minor # was always 0
due to a parsing bug. Oops. -Erik
-rw-r--r--Changelog2
-rw-r--r--coreutils/mknod.c3
-rw-r--r--miscutils/update.c2
-rw-r--r--mknod.c3
-rw-r--r--update.c2
5 files changed, 8 insertions, 4 deletions
diff --git a/Changelog b/Changelog
index b7e40e624..f185e9017 100644
--- a/Changelog
+++ b/Changelog
@@ -4,6 +4,8 @@
4 * Added mktemp, contributed by Daniel Jacobowitz <dan@debian.org> 4 * Added mktemp, contributed by Daniel Jacobowitz <dan@debian.org>
5 * Fix for ping warnings from Sascha Ziemann <szi@aibon.ping.de> 5 * Fix for ping warnings from Sascha Ziemann <szi@aibon.ping.de>
6 * More doc updates 6 * More doc updates
7 * Fixed update segfault
8 * Fixed mknod -- minor number was always 0
7 9
8 10
90.43 110.43
diff --git a/coreutils/mknod.c b/coreutils/mknod.c
index 0c93df64d..caa234f1f 100644
--- a/coreutils/mknod.c
+++ b/coreutils/mknod.c
@@ -58,6 +58,7 @@ int mknod_main(int argc, char **argv)
58 argc--; 58 argc--;
59 argv++; 59 argv++;
60 parse_mode(*argv, &perm); 60 parse_mode(*argv, &perm);
61 umask(0);
61 break; 62 break;
62 default: 63 default:
63 usage(mknod_usage); 64 usage(mknod_usage);
@@ -87,7 +88,7 @@ int mknod_main(int argc, char **argv)
87 } 88 }
88 89
89 if (mode == S_IFCHR || mode == S_IFBLK) { 90 if (mode == S_IFCHR || mode == S_IFBLK) {
90 dev = (atoi(argv[2]) << 8) | atoi(argv[1]); 91 dev = (atoi(argv[2]) << 8) | atoi(argv[3]);
91 } 92 }
92 93
93 mode |= perm; 94 mode |= perm;
diff --git a/miscutils/update.c b/miscutils/update.c
index 1e3e032fd..18b13e8c9 100644
--- a/miscutils/update.c
+++ b/miscutils/update.c
@@ -52,7 +52,7 @@ extern int update_main(int argc, char **argv)
52 52
53 argc--; 53 argc--;
54 argv++; 54 argv++;
55 while (**argv == '-') { 55 while (argc>0 && **argv == '-') {
56 while (*++(*argv)) { 56 while (*++(*argv)) {
57 switch (**argv) { 57 switch (**argv) {
58 case 'S': 58 case 'S':
diff --git a/mknod.c b/mknod.c
index 0c93df64d..caa234f1f 100644
--- a/mknod.c
+++ b/mknod.c
@@ -58,6 +58,7 @@ int mknod_main(int argc, char **argv)
58 argc--; 58 argc--;
59 argv++; 59 argv++;
60 parse_mode(*argv, &perm); 60 parse_mode(*argv, &perm);
61 umask(0);
61 break; 62 break;
62 default: 63 default:
63 usage(mknod_usage); 64 usage(mknod_usage);
@@ -87,7 +88,7 @@ int mknod_main(int argc, char **argv)
87 } 88 }
88 89
89 if (mode == S_IFCHR || mode == S_IFBLK) { 90 if (mode == S_IFCHR || mode == S_IFBLK) {
90 dev = (atoi(argv[2]) << 8) | atoi(argv[1]); 91 dev = (atoi(argv[2]) << 8) | atoi(argv[3]);
91 } 92 }
92 93
93 mode |= perm; 94 mode |= perm;
diff --git a/update.c b/update.c
index 1e3e032fd..18b13e8c9 100644
--- a/update.c
+++ b/update.c
@@ -52,7 +52,7 @@ extern int update_main(int argc, char **argv)
52 52
53 argc--; 53 argc--;
54 argv++; 54 argv++;
55 while (**argv == '-') { 55 while (argc>0 && **argv == '-') {
56 while (*++(*argv)) { 56 while (*++(*argv)) {
57 switch (**argv) { 57 switch (**argv) {
58 case 'S': 58 case 'S':