telnet dumps core
Bill Nowicki
nowicki at sun.uucp
Thu Aug 21 09:19:13 AEST 1986
Description:
The telnet program (both 4.2BSD and 4.3BSD versions) dumps
core when run on machines that do not allow referencing a NULL
pointer.
Repeat-By:
Run the "telnet" program, and type a space followed by return.
Or type "conn" followed by two returns. If you are on a machine
that does not allow refencing NULL pointers, then you get a core
dump crash.
sun% telnet
telnet> [ typed space followed by return ]
Segmentation fault (core dumped)
sun% telnet
telnet> open
(to) [ typed return ]
Segmentation fault (core dumped)
sun%
Fix:
*** telnet.c.fixed Wed Aug 20 12:35:14 1986
--- /arch/4.3/usr/src/ucb/telnet.c Tue May 27 09:47:07 1986
***************
*** 2025,2031 ****
makeargv();
argc = margc;
argv = margv;
- if (argv[1]==NULL) return 0;
}
if (argc > 3) {
printf("usage: %s host-name [port]\n", argv[0]);
--- 2025,2030 ----
***************
*** 2278,2286 ****
quit();
break;
}
! makeargv();
! if (margv[0] == NULL)
break;
c = getcmd(margv[0]);
if (c == Ambiguous(struct cmd *)) {
printf("?Ambiguous command\n");
--- 2277,2285 ----
quit();
break;
}
! if (line[0] == 0)
break;
+ makeargv();
c = getcmd(margv[0]);
if (c == Ambiguous(struct cmd *)) {
printf("?Ambiguous command\n");
*** /arch/4.3/usr/src/ucb/telnet.c Tue May 27 09:47:07 1986
--- telnet.c.fixed Wed Aug 20 12:35:14 1986
***************
*** 2025,2030 ****
--- 2025,2031 ----
makeargv();
argc = margc;
argv = margv;
+ if (argv[1]==NULL) return 0;
}
if (argc > 3) {
printf("usage: %s host-name [port]\n", argv[0]);
***************
*** 2277,2285 ****
quit();
break;
}
- if (line[0] == 0)
- break;
makeargv();
c = getcmd(margv[0]);
if (c == Ambiguous(struct cmd *)) {
printf("?Ambiguous command\n");
--- 2278,2286 ----
quit();
break;
}
makeargv();
+ if (margv[0] == NULL)
+ break;
c = getcmd(margv[0]);
if (c == Ambiguous(struct cmd *)) {
printf("?Ambiguous command\n");
More information about the Comp.bugs.4bsd.ucb-fixes
mailing list