diff options
author | Erik Andersen | 2000-04-28 22:10:34 +0000 |
---|---|---|
committer | Erik Andersen | 2000-04-28 22:10:34 +0000 |
commit | 6ed02a0ee010a28b7649a9ef734679f7818c57e3 (patch) | |
tree | 7cb786c18876841a546f222f20e4b35e0bcf576a | |
parent | abc199eb0cc485e42107595ca2d877c7724aced0 (diff) | |
download | busybox-6ed02a0ee010a28b7649a9ef734679f7818c57e3.zip busybox-6ed02a0ee010a28b7649a9ef734679f7818c57e3.tar.gz |
Fix stupid bugs. update was segfaulting. mknod minor # was always 0
due to a parsing bug. Oops.
-Erik
-rw-r--r-- | Changelog | 2 | ||||
-rw-r--r-- | coreutils/mknod.c | 3 | ||||
-rw-r--r-- | miscutils/update.c | 2 | ||||
-rw-r--r-- | mknod.c | 3 | ||||
-rw-r--r-- | update.c | 2 |
5 files changed, 8 insertions, 4 deletions
@@ -4,6 +4,8 @@ * Added mktemp, contributed by Daniel Jacobowitz <dan@debian.org> * Fix for ping warnings from Sascha Ziemann <szi@aibon.ping.de> * More doc updates + * Fixed update segfault + * Fixed mknod -- minor number was always 0 0.43 diff --git a/coreutils/mknod.c b/coreutils/mknod.c index 0c93df6..caa234f 100644 --- a/coreutils/mknod.c +++ b/coreutils/mknod.c @@ -58,6 +58,7 @@ int mknod_main(int argc, char **argv) argc--; argv++; parse_mode(*argv, &perm); + umask(0); break; default: usage(mknod_usage); @@ -87,7 +88,7 @@ int mknod_main(int argc, char **argv) } if (mode == S_IFCHR || mode == S_IFBLK) { - dev = (atoi(argv[2]) << 8) | atoi(argv[1]); + dev = (atoi(argv[2]) << 8) | atoi(argv[3]); } mode |= perm; diff --git a/miscutils/update.c b/miscutils/update.c index 1e3e032..18b13e8 100644 --- a/miscutils/update.c +++ b/miscutils/update.c @@ -52,7 +52,7 @@ extern int update_main(int argc, char **argv) argc--; argv++; - while (**argv == '-') { + while (argc>0 && **argv == '-') { while (*++(*argv)) { switch (**argv) { case 'S': @@ -58,6 +58,7 @@ int mknod_main(int argc, char **argv) argc--; argv++; parse_mode(*argv, &perm); + umask(0); break; default: usage(mknod_usage); @@ -87,7 +88,7 @@ int mknod_main(int argc, char **argv) } if (mode == S_IFCHR || mode == S_IFBLK) { - dev = (atoi(argv[2]) << 8) | atoi(argv[1]); + dev = (atoi(argv[2]) << 8) | atoi(argv[3]); } mode |= perm; @@ -52,7 +52,7 @@ extern int update_main(int argc, char **argv) argc--; argv++; - while (**argv == '-') { + while (argc>0 && **argv == '-') { while (*++(*argv)) { switch (**argv) { case 'S': |