On Thu, 12 May 2005, Derek Atkins wrote: > Quoting Dan Williams <[EMAIL PROTECTED]>: > > 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 _______________________________________________ NetworkManager-list mailing list NetworkManager-list@gnome.org http://mail.gnome.org/mailman/listinfo/networkmanager-list