aboutsummaryrefslogtreecommitdiff
path: root/usr.bin/tftp/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr.bin/tftp/main.c')
-rw-r--r--usr.bin/tftp/main.c19
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]);