[reSIProcate] Crash inside RRList::update()

Dmitry Semyonov dsemyonov at dins.ru
Fri Jan 27 11:54:02 CST 2006


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 at 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.



More information about the resiprocate-devel mailing list