Stack trace:
ptlibd.dll!PString::operator==(const PString & str={...}) Line 93 C++
opald.dll!SIPConnection::CheckINVITE(const SIP_PDU & request={...}) Line 2789 C++
opald.dll!SIPEndPoint::OnReceivedPDU(SIP_PDU * pdu=0x054d1ea8) Line 733 C++
opald.dll!SIPEndPoint::HandlePDU(const PSafePtr<OpalTransport,PSafePtrBase> & transport={...}) Line 370 C++
opald.dll!SIPEndPoint::NewIncomingConnection(OpalListener & __formal={...}, const PSafePtr<OpalTransport,PSafePtrBase> & transport={...}) Line 198 C++
opald.dll!OpalEndPoint::NewIncomingConnection_PNotifier::Call(PObject & note={...}, const PSafePtr<OpalTransport,PSafePtrBase> & extra={...}) Line 226 C++
opald.dll!PNotifierTemplate<PSafePtr<OpalTransport,PSafePtrBase> const &>::operator()(PObject & notifier={...}, const PSafePtr<OpalTransport,PSafePtrBase> & extra={...}) Line 136 C++
opald.dll!OpalListener::ListenForConnections() Line 620 C++
opald.dll!PThreadObj<OpalListener>::Main() Line 664 C++
ptlibd.dll!PThread::MainFunction(void * threadPtr=0x034788f0) Line 853 C++
msvcr110d.dll!_callthreadstartex() Line 354 C
It occurs in SIPConnection::CheckINVITE on line
if (m_lastReceivedINVITE->GetTransactionID() == request.GetTransactionID()) {
I see that m_lastReceivedINVITE is not NULL, but contains invalid object data, so it seems like m_lastReceivedINVITE is destroyed (and there is no lock for the SIPConnection while processing SIPConnection::CheckINVITE).
Patch #271 fixes this.