On 20/12/2013 5:30 a.m., Don Brearley wrote:
> Hi Amos,
> 
> 
> I applied your patch to 3.3.9 and recompiled/reinstalled.  Same issue
> persists. Here is your
> requested information:
>
<snip>
> 
> (gdb) backtrace
> #0  0x0000000802cbe23c in thr_kill () from /lib/libc.so.7
> #1  0x0000000802d6263b in abort () from /lib/libc.so.7
> #2  0x0000000802d45d35 in __assert () from /lib/libc.so.7
> #3  0x00000000006805e7 in Ip::Address::GetSockAddr (this=0x7fffffffd8e0,
> buf=@0x7fffffffd910) at Address.cc:966
> #4  0x0000000000#5  0x00000000006df030 in Comm::DoSelect (msec=) at 
> ModKqueue.cc:301
> #6  0x0000000000679c9d in CommSelectEngine::checkEvents (this=,
> timeout=0) at comm.cc:2088
> #7  0x0000000000523ccc in EventLoop::checkEngine (this=0x7fffffffda70,
> engine=0x7fffffffdaf0, primary=) at EventLoop.cc:52
> #8  0x0000000000523ee5 in EventLoop::runOnce (this=0x7fffffffda70) at
> EventLoop.cc:126
> #9  0x00000000005240a8 in EventLoop::run (this=0x7fffffffda70) at
> EventLoop.cc:96
> #10 0x0000000000598f53 in SquidMain (argc=2, argv=) at main.cc:1520
> #11 0x00000000005992b8 in SquidMainSafe (argc=, argv=) at main.cc:1242
> #12 0x00000000004b6941 in _start ()
> #13 0x00000008009cf000 in ?? ()
> #14 0x0000000000000000 in ?? ()
> 
> 
> (gdb) frame 4
> #4  0x0000000000604e8f in wccp2HandleUdp (sock=15, not_used=) at
> wccp2.cc:1182
> 1182    from_tmp.GetSockAddr(from);
> 
> 
> (gdb) print len
> $1 = -1
> 
> 
> (gdb) print from
> $2 = {sin_len = 255 '�', sin_family = 255 '�', sin_port = 65535,
> sin_addr = {s_addr = 4294967295}, sin_zero = "��������"}
> 
> 

Aha!. Random crap being left in the sockaddr_in value on failed packet
receives.

If you move the if(len<0) check above the crashing line
from_tmp.GetSockAddr(from) it should start working.

I will have a patch for you in a few hrs when I get back to machines.

Amos

Reply via email to