Short: Telnet und der Dev209 Date: Tue, 20 Jun 2000 18:15:27 +0200 From: Heiko Kopp <hkopp@t-online.de> Type: Bug State: Done - fixed in 3.2.8-dev.214 Analysis: A debug statement was at the wrong place, dereferencing an uninitialized variable. Hallo Lars, ich habe mir mal einen Treiber mit DEBUG_TELNET definiert, kompiliert und wollte den nun testen. Dazu habe ich die auskommentierten Hooks im Master reaktiviert. Lib ist Evermore-1.4N, Driver runs on cygwin, client was zMud. Nun gibt es dabei aber ein Problem: 2000.06.20 16:06:42 Setting up ipc. 6e330000://E/WINNT/System32/INDICDLL.dll 75df0000://E/WINNT/System32/IMM32.dll 77910000://E/WINNT/system32/imagehlp.dll 72970000://E/WINNT/system32/DBGHELP.dll 2000.06.20 16:06:48 TDEBUG: 'std/login#0' telnet_neg: state 0 2000.06.20 16:06:48 TDEBUG: 'std/login#0' telnet_neg: state 0 2000.06.20 16:06:48 TDEBUG: 'std/login#0' telnet machine ready 2000.06.20 16:06:48 TDEBUG: 'std/login#0' telnet_neg: state 0 2000.06.20 16:06:48 TDEBUG: 'std/login#0' return with command 2000.06.20 16:06:48 TDEBUG: 'std/login#0' set_noecho(ffffff81) old 00 -> confirm: ffffff85 -> ffffff 2000.06.20 16:06:48 TDEBUG: 'std/login#0' set_noecho(): calling H_NOECHO 2000.06.20 16:06:48 TDEBUG: 'std/login#0' telnet_neg: state 0 2000.06.20 16:06:48 TDEBUG: 'std/login#0' t_n: new state 1 2000.06.20 16:06:48 TDEBUG: 'std/login#0' t_n: state IAC 2000.06.20 16:06:48 TDEBUG: 'std/login#0' t_n: got DONT 2000.06.20 16:06:48 TDEBUG: 'std/login#0' t_n: new state 5 2000.06.20 16:06:48 TDEBUG: 'std/login#0' t_n: state DONT got ECHO (01) 2000.06.20 16:06:48 TDEBUG: 'std/login#0' reply to telnet_neg: DONT 01 2000.06.20 16:06:48 TDEBUG: 'std/login#0' t_n: new state 0 2000.06.20 16:06:52 TDEBUG: 'std/login#0' telnet_neg: state 0 2000.06.20 16:06:52 TDEBUG: 'std/login#0' telnet machine ready 2000.06.20 16:06:52 TDEBUG: 'std/login#0' telnet_neg: state 0 2000.06.20 16:06:52 TDEBUG: 'std/login#0' return with command 2000.06.20 16:06:52 TDEBUG: 'std/player#2' set_noecho(00) old ffffffc5 -> confirm: 00 -> 00 2000.06.20 16:06:52 TDEBUG: 'std/player#2' set_noecho(): calling H_NOECHO 2000.06.20 16:06:52 TDEBUG: 'std/player#2' telnet_neg: state 0 2000.06.20 16:06:52 TDEBUG: 'std/player#2' t_n: new state 1 2000.06.20 16:06:52 TDEBUG: 'std/player#2' t_n: state IAC 2000.06.20 16:06:52 TDEBUG: 'std/player#2' t_n: got DONT 2000.06.20 16:06:52 TDEBUG: 'std/player#2' t_n: new state 5 2000.06.20 16:06:52 TDEBUG: 'std/player#2' t_n: state DONT got ECHO (01) 2000.06.20 16:06:52 TDEBUG: 'std/player#2' reply to telnet_neg: DONT 01 2000.06.20 16:06:52 TDEBUG: 'std/player#2' t_n: new state 0 2000.06.20 16:06:52 TDEBUG: 'std/player#2' t_n: new state 1 2000.06.20 16:06:52 TDEBUG: 'std/player#2' t_n: state IAC 2000.06.20 16:06:52 TDEBUG: 'std/player#2' t_n: got WONT 2000.06.20 16:06:52 TDEBUG: 'std/player#2' t_n: new state 3 2000.06.20 16:06:52 TDEBUG: 'std/player#2' t_n: state WONT got NEWENV (27) 2000.06.20 16:06:52 TDEBUG: 'std/player#2' reply to telnet_neg: WONT 27 2000.06.20 16:06:52 TDEBUG: 'std/player#2' t_n: new state 0 2000.06.20 16:06:52 TDEBUG: 'std/player#2' t_n: new state 1 2000.06.20 16:06:52 TDEBUG: 'std/player#2' t_n: state IAC 2000.06.20 16:06:52 TDEBUG: 'std/player#2' t_n: got WONT 2000.06.20 16:06:52 TDEBUG: 'std/player#2' t_n: new state 3 2000.06.20 16:06:52 TDEBUG: 'std/player#2' t_n: state WONT got TERMINAL TYPE (18) 2000.06.20 16:06:52 TDEBUG: 'std/player#2' reply to telnet_neg: WONT 18 2000.06.20 16:06:52 TDEBUG: 'std/player#2' t_n: new state 0 2000.06.20 16:06:52 TDEBUG: 'std/player#2' t_n: new state 1 2000.06.20 16:06:52 TDEBUG: 'std/player#2' t_n: state IAC 2000.06.20 16:06:52 TDEBUG: 'std/player#2' t_n: got WONT 2000.06.20 16:06:52 TDEBUG: 'std/player#2' t_n: new state 3 2000.06.20 16:06:52 TDEBUG: 'std/player#2' t_n: state WONT got NAWS (1f) 2000.06.20 16:06:52 TDEBUG: 'std/player#2' reply to telnet_neg: WONT 1f 2000.06.20 16:06:52 TDEBUG: 'std/player#2' t_n: new state 0 2000.06.20 16:06:52 TDEBUG: 'std/player#2' t_n: new state 1 2000.06.20 16:06:52 TDEBUG: 'std/player#2' t_n: state IAC 2000.06.20 16:06:52 TDEBUG: 'std/player#2' t_n: got WILL 2000.06.20 16:06:52 TDEBUG: 'std/player#2' t_n: new state 2 2000.06.20 16:06:52 TDEBUG: 'std/player#2' t_n: state WILL got TERMINAL TYPE (18) 2000.06.20 16:06:52 TDEBUG: 'std/player#2' reply to telnet_neg: WILL 18 2000.06.20 16:06:52 TDEBUG: 'std/player#2' t_n: new state 0 2000.06.20 16:06:52 TDEBUG: 'std/player#2' t_n: new state 1 2000.06.20 16:06:52 TDEBUG: 'std/player#2' t_n: state IAC 2000.06.20 16:06:52 TDEBUG: 'std/player#2' t_n: got WILL 2000.06.20 16:06:52 TDEBUG: 'std/player#2' t_n: new state 2 2000.06.20 16:06:52 TDEBUG: 'std/player#2' t_n: state WILL got NAWS (1f) 2000.06.20 16:06:52 TDEBUG: 'std/player#2' reply to telnet_neg: WILL 1f 2000.06.20 16:06:52 TDEBUG: 'std/player#2' t_n: new state 0 2000.06.20 16:06:52 TDEBUG: 'std/player#2' t_n: new state 1 2000.06.20 16:06:52 TDEBUG: 'std/player#2' t_n: state IAC 2000.06.20 16:06:52 TDEBUG: 'std/player#2' t_n: got SB 2000.06.20 16:06:52 TDEBUG: 'std/player#2' t_n: new state 6 2000.06.20 16:06:52 TDEBUG: 'std/player#2' t_n: state TS_SB got 1f 2000.06.20 16:06:52 TDEBUG: 'std/player#2' t_n: state TS_SB got 00 2000.06.20 16:06:52 TDEBUG: 'std/player#2' t_n: state TS_SB got 7c 2000.06.20 16:06:52 TDEBUG: 'std/player#2' t_n: state TS_SB got 00 2000.06.20 16:06:52 TDEBUG: 'std/player#2' t_n: state TS_SB got 17 2000.06.20 16:06:52 TDEBUG: 'std/player#2' t_n: state TS_SB got ff 2000.06.20 16:06:52 TDEBUG: 'std/player#2' t_n: new state 7 2000.06.20 16:06:52 TDEBUG: 'std/player#2' t_n: state TS_SB_IAC got f0 Program received signal SIGSEGV, Segmentation fault. 0x417bc6 in telnet_neg (ip=Cannot access memory at address 0x55. ) at comm.c:3876 3876 comm.c: No such file or directory. (gdb) Zeile 3876: DT(("'%s' t_n: that is: state TS_SB_IAC got useful SE or SB: neg SB %02x (%d bytes)\n", ip->ob->name, *str, size)); (gdb) display ip 1: ip = (interactive_t *) 0xa1bca54 (gdb) display ip->ob 2: ip->ob = (object_t *) 0xa239110 (gdb) display ip->ob->name 3: ip->ob->name = 0xa1e213c "std/player#2" Zeile 3877: str = (unsigned char *)&ip->text[ip->tn_start]; (gdb) display ip->tn_start 4: ip->tn_start = 0 Ich hoffe die Infos helfen Dir :) Gruss Heiko --__________________________________________ Archwizard Bardioc@Evermore The Lands of Evermore - a fantasy mud Come and join us at telnet://mud.evermore.de Write me a mail at bardioc@evermore.de