31 Dec, 2008, Kline wrote in the 21st comment:
Votes: 0
strstr is in your libc so that's not the problem. Look at #1, specifically line 96 in ban.c Is that feeding strstr a null or entirely garbage argument?
31 Dec, 2008, Max7288 wrote in the 22nd comment:
Votes: 0
if (strstr(hostname, banned_node->site)) /* if hostname is a substring */ is the line in Ban.c
31 Dec, 2008, Zeno wrote in the 23rd comment:
Votes: 0
You didn't print what I asked.

Print banned_node and banned_node->site
31 Dec, 2008, David Haley wrote in the 24th comment:
Votes: 0
You need to look at the values of hostname and banned_node->site to see if they're bogus as Kline/Zeno suggested.
31 Dec, 2008, Zeno wrote in the 25th comment:
Votes: 0
We already know what hostname is, don't we?
Quote
#1 0x080a3f76 in isbanned (hostname=0xb7c8800c "68.230.115.236") at ban.c:96
31 Dec, 2008, Max7288 wrote in the 26th comment:
Votes: 0
it comes up with
(gdb) Print banned_node
No symbol "banned_node" in current context.

(gdb) print banned_node->site
No symbol "banned_node" in current context.
31 Dec, 2008, Zeno wrote in the 27th comment:
Votes: 0
You need to be in the correct frame. Are you in the right frame?
31 Dec, 2008, David Haley wrote in the 28th comment:
Votes: 0
You need to do it from the correct stack frame – try typing 'up' to go to frame #1 which is where the line of code you showed is from.
31 Dec, 2008, Max7288 wrote in the 29th comment:
Votes: 0
ahh duh that makes sense now

(gdb) Print banned_node
$1 = (struct ban_list_element *) 0x5d6d3033

(gdb) print banned_node->site
Cannot access memory at address 0x5d6d3033
31 Dec, 2008, Max7288 wrote in the 30th comment:
Votes: 0
struct ban_list_element *ban_list = NULL;
I dont know if that has to do with the bug or not but it does relate to the Prints and has a Null in it
31 Dec, 2008, Max7288 wrote in the 31st comment:
Votes: 0
#0 0x0035257e in strstr () from /lib/tls/libc.so.6
#1 0x080a4534 in Valid_Name (newname=0xbff20b20 "maximus") at ban.c:280
#2 0x080c1c34 in nanny (d=0xb7aaf008, arg=0xbff20f40 "maximus") at interpreter.c:1942
#3 0x0804e3fb in game_loop (mother_desc=3) at comm.c:869
#4 0x0804e594 in init_game (port=1280) at comm.c:479
#5 0x0804e91b in main (argc=3, argv=0xbff23374) at comm.c:349
(gdb) up
#1 0x080a4534 in Valid_Name (newname=0xbff20b20 "maximus") at ban.c:280
280 if (strstr(tempname, invalid_list))
(gdb) print Valid_Name
$1 = {int (char *)} 0x80a445c <Valid_Name>
(gdb) up
#2 0x080c1c34 in nanny (d=0xb7aaf008, arg=0xbff20f40 "maximus") at interpreter.c:1942
1942 if ((_parse_name(arg, tmp_name)) || strlen(tmp_name) < 2 ||
(gdb) print nanny
$2 = {void (struct descriptor_data *, char *)} 0x80c06b8 <nanny>
Another part of the bug i think
31 Dec, 2008, David Haley wrote in the 32nd comment:
Votes: 0
All you're printing there are the function symbols, which aren't terribly informative. You need to be showing the variable values, like tempname and invalid_list.
20.0/32