[reSIProcate] Crash inside RRList::update()
- From: Dmitry Semyonov <dsemyonov@xxxxxxx>
- Date: Fri, 27 Jan 2006 20:54:02 +0300 (MSK)
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.