diff options
Diffstat (limited to 'usr.bin/tftp/main.c')
| -rw-r--r-- | usr.bin/tftp/main.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/usr.bin/tftp/main.c b/usr.bin/tftp/main.c index 48ee1879fd23..bd3fb6c8c504 100644 --- a/usr.bin/tftp/main.c +++ b/usr.bin/tftp/main.c @@ -60,6 +60,7 @@ static char sccsid[] = "@(#)main.c 5.10 (Berkeley) 3/1/91"; #include <netdb.h> #define TIMEOUT 5 /* secs between rexmt's */ +#define LBUFLEN 200 /* size of input buffer */ struct sockaddr_in s_in; int f; @@ -68,7 +69,7 @@ int trace; int verbose; int connected; char mode[32]; -char line[200]; +char line[LBUFLEN]; int margc; char *margv[20]; char *prompt = "tftp"; @@ -169,12 +170,12 @@ setpeer(argc, argv) if (argc < 2) { strcpy(line, "Connect "); printf("(to) "); - gets(&line[strlen(line)]); + fgets(&line[strlen(line)], LBUFLEN-strlen(line), stdin); makeargv(); argc = margc; argv = margv; } - if (argc > 3) { + if ((argc < 2) || (argc > 3)) { printf("usage: %s host-name [port]\n", argv[0]); return; } @@ -284,7 +285,7 @@ put(argc, argv) if (argc < 2) { strcpy(line, "send "); printf("(file) "); - gets(&line[strlen(line)]); + fgets(&line[strlen(line)], LBUFLEN-strlen(line), stdin); makeargv(); argc = margc; argv = margv; @@ -375,7 +376,7 @@ get(argc, argv) if (argc < 2) { strcpy(line, "get "); printf("(files) "); - gets(&line[strlen(line)]); + fgets(&line[strlen(line)], LBUFLEN-strlen(line), stdin); makeargv(); argc = margc; argv = margv; @@ -455,7 +456,7 @@ setrexmt(argc, argv) if (argc < 2) { strcpy(line, "Rexmt-timeout "); printf("(value) "); - gets(&line[strlen(line)]); + fgets(&line[strlen(line)], LBUFLEN-strlen(line), stdin); makeargv(); argc = margc; argv = margv; @@ -481,7 +482,7 @@ settimeout(argc, argv) if (argc < 2) { strcpy(line, "Maximum-timeout "); printf("(value) "); - gets(&line[strlen(line)]); + fgets(&line[strlen(line)], LBUFLEN-strlen(line), stdin); makeargv(); argc = margc; argv = margv; @@ -547,14 +548,14 @@ command(top) putchar('\n'); for (;;) { printf("%s> ", prompt); - if (gets(line) == 0) { + if (fgets(line, LBUFLEN, stdin) == 0) { if (feof(stdin)) { quit(); } else { continue; } } - if (line[0] == 0) + if ((line[0] == 0) || (line[0] == '\n')) continue; makeargv(); c = getcmd(margv[0]); |
