< Previous by Date Date Index Next by Date >
  Thread Index Next in Thread >

[reSIProcate] Crash inside RRList::update()


Hi all.

Environment: reSIProcate rev.5685 on Win2K.
(The revision is rather old, but looks like there were no changes in 
the DNS code that might have fixed the issue in later revisions.)

In some rare yet undetermined cases I encounter crash inside DNS 
code:

>       resip::RRList::update()  Line 62 + 0x3  
        resip::RRList::RRList()  Line 50        
        resip::RRCache::updateCache()  Line 95 + 0x41   
        ___WSAFDIsSet@8()  + 0x9544     
        resip::DnsStub::Query::followCname()  Line 487 + 0x30   

Exact place is highlighted below (ECX is zero):

    62:          item.record = factory->create(*it);
  01B4F439  mov         ecx,dword ptr [ebp+8] 
> 01B4F43C  mov         eax,dword ptr [ecx] 
  01B4F43E  push        edi  
  01B4F43F  mov         byte ptr [ebp-4],1 
  01B4F443  call        dword ptr [eax+4] 

Adding sanity pointer checks will likely solve the issue, but will it 
be the right solution?

Could anybody familiar with DNS code review the trace, and possibly 
propose a better fix?

-- 
...Bye..Dmitry.