From 8d8b30ec7d94cf88162773caab08d086bcbf7a60 Mon Sep 17 00:00:00 2001 From: Mark Horton Date: Fri, 7 Nov 1980 20:06:25 -0800 Subject: [PATCH 1/1] fixed bug that core dumped when bad arguments were given SCCS-vsn: usr.bin/wc/wc.c 4.2 --- usr/src/usr.bin/wc/wc.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/usr/src/usr.bin/wc/wc.c b/usr/src/usr.bin/wc/wc.c index 30d6b8190a..b947edbfd0 100644 --- 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 @@ -25,7 +25,11 @@ char **argv; wd = argv[1]+1; break; case 's': + if (argc == 2) + goto usage; lpp = atoi(argv[1]+2); + if (lpp <= 0) + goto usage; break; case 'v': verbose++; @@ -35,12 +39,20 @@ char **argv; uucp++; break; case 'b': + if (argc == 2) + goto usage; baud = atoi(argv[1]+2); if (baud == 110) cps = 10; else cps = baud / 10; + if (cps <= 0) + goto usage; break; + default: + usage: + fprintf(stderr, "Usage: wc [-lwcpt] [-v] [-u] [-s pagesize] [-b baudrate]\n"); + exit(1); } argc--; argv++; -- 2.20.1