Re: CVS (STABLE_0_3) works for Madwifi/Atheros, but starts too late



On Thu, 12 May 2005, Derek Atkins wrote:
> Quoting Dan Williams <dcbw redhat com>:
> > Can you do this?
> > 
> > As root:
> > gdb /usr/bin/NetworkManager
> > r --no-daemon
> > <do stuff until it segfaults>
> > t a a bt
> > <mail me the result>
> 
> A few more results (not that this is surprising):
> 
> dhcp_init (iface=0x80d1920) at client.c:767
> 767             memcpy (&(iface->siaddr),
> iface->dhcp_options.val[dhcpServerIdentifier], 4);
> (gdb) p iface
> $1 = (dhcp_interface *) 0x80d1920
> (gdb) p *iface
> $2 = {iface = 0x80ad8c0 "eth0", cease = 0, running = 0, sk = 20, foo_sk = -1,
>   saved_if_flags = 4195, default_lease_time = 4294967295, default_router = {
>     s_addr = 0}, ciaddr = 0, chaddr = "\000\021%F\uffff\uffff", siaddr = 0,
>   shaddr = "\000\000\000\000\000", xid = 2084486532, ip_id = 4278,
>   cls_id = '\0' <repeats 47 times>, cls_id_len = 0,
>   cli_id = '\0' <repeats 47 times>, cli_id_len = 0, dhcp_options = {
>     len = '\0' <repeats 255 times>, val = {0x0 <repeats 256 times>},
>     num = 0 '\0'}, client_options = 0x80aa660}
> (gdb) p iface->dhcp_options.val
> $3 = {0x0 <repeats 256 times>}
> (gdb) quit
> 
> Not sure if this helps any...

As a matter of fact, it does.  I was just going to ask what 
iface->dhcp_options.val was.  Since its zero-filled, that indicates that the 
copy from the packet we received into the local structure was either a) not 
done, b) correct and the DHCP packet was bad, or c) we've hit this code when we 
should not have.

In GDB, when you get here, can you do:

print dhcp_resp
print dhcp_resp.dhcp_msg
print dhcp_resp.dhcp_msg.options

And send along the results?  That should give me the actual packet the DHCP 
server passed back.

Thanks!
Dan



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]