projects
/
unix-history
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
tags
|
clone url
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fixed bug that core dumped when bad arguments were given
[unix-history]
/
usr
/
src
/
usr.bin
/
wc
/
wc.c
diff --git
a/usr/src/usr.bin/wc/wc.c
b/usr/src/usr.bin/wc/wc.c
index
30d6b81
..
b947edb
100644
(file)
--- a/
usr/src/usr.bin/wc/wc.c
+++ b/
usr/src/usr.bin/wc/wc.c
@@
-1,4
+1,4
@@
-static char *sccsid = "@(#)wc.c 4.
1
(Berkeley) %G%";
+static char *sccsid = "@(#)wc.c 4.
2
(Berkeley) %G%";
/* wc line and word count */
#include <stdio.h>
/* wc line and word count */
#include <stdio.h>
@@
-25,7
+25,11
@@
char **argv;
wd = argv[1]+1;
break;
case 's':
wd = argv[1]+1;
break;
case 's':
+ if (argc == 2)
+ goto usage;
lpp = atoi(argv[1]+2);
lpp = atoi(argv[1]+2);
+ if (lpp <= 0)
+ goto usage;
break;
case 'v':
verbose++;
break;
case 'v':
verbose++;
@@
-35,12
+39,20
@@
char **argv;
uucp++;
break;
case 'b':
uucp++;
break;
case 'b':
+ if (argc == 2)
+ goto usage;
baud = atoi(argv[1]+2);
if (baud == 110)
cps = 10;
else
cps = baud / 10;
baud = atoi(argv[1]+2);
if (baud == 110)
cps = 10;
else
cps = baud / 10;
+ if (cps <= 0)
+ goto usage;
break;
break;
+ default:
+ usage:
+ fprintf(stderr, "Usage: wc [-lwcpt] [-v] [-u] [-s pagesize] [-b baudrate]\n");
+ exit(1);
}
argc--;
argv++;
}
argc--;
argv++;