[reSIProcate] meet an error when a DUM as an UAS processing an INVITE message with current SVN revision 9100
Scott Godin
sgodin at sipspectrum.com
Fri Apr 15 21:24:01 CDT 2011
I not sure why that code would be causing you problems - or why your fix
changes the behavior. That code is being successfully used in lots of
working projects. I am a little suspect of memory corruptions problems
causing this. Or perhaps it's some bug in the Visual Studio 2003 compiler -
I've been mainly using VS2008 and VS2010, and haven't touched VS2003 in
years. You could also try a newer Visual Studio release to see if that
helps.
Scott
On Fri, Apr 15, 2011 at 9:10 PM, Allen Guan <allenguan at gmail.com> wrote:
> I have found the fix for this. change the following line in
> InviteSession::getOfferAnswer(msg) calls:
> -------------
> return std::auto_ptr<Contents>(Helper::getSdp(msg.getContents())); // line
> 2736
> -------------
> to:
> -------------
> auto_ptr<SdpContents> temp = Helper::getSdp(msg.getContents());
> return temp;
> -------------
> please verify if my fix is correct, thanks!
>
>
> On Fri, Apr 15, 2011 at 5:33 PM, Allen Guan <allenguan at gmail.com> wrote:
> > Hi, all,
> >
> > I am using visual studio 2003 to build a very simple SIP server for
> > testing with current SVN revision 9100. I added SipStack with an
> > instance of DUM as its UA, this dum set an instance of
> > InviteSessionHandler with some log lines in it, nothing more. when
> > this DUM instance tries to process an INVITE message, it causes an
> > error and the call stack looks as the following:
> > ---------------------
> >>
> MediaServer.exe!std::auto_ptr<resip::SdpContents>::operator<resip::Contents>
> std::auto_ptr_ref<resip::Contents>() Line 452 + 0x6 C++
> >
> MediaServer.exe!std::auto_ptr<resip::SdpContents>::operator<resip::Contents>
> > std::auto_ptr_ref<resip::Contents>() Line 454 + 0xc C++
> >
> MediaServer.exe!std::auto_ptr<resip::SdpContents>::operator<resip::Contents>
> > std::auto_ptr_ref<resip::Contents>() Line 454 + 0xc C++
> >
> MediaServer.exe!std::auto_ptr<resip::SdpContents>::operator<resip::Contents>
> > std::auto_ptr_ref<resip::Contents>() Line 454 + 0xc C++
> >
> MediaServer.exe!std::auto_ptr<resip::SdpContents>::operator<resip::Contents>
> > std::auto_ptr_ref<resip::Contents>() Line 454 + 0xc C++
> > ..........................
> > ---------------------
> >
> > When I dig into it step by step, I notice the error caused by the
> > following line in ServerInviteSession::dispatchStart():
> > ---------------
> > std::auto_ptr<Contents> offerAnswer =
> > InviteSession::getOfferAnswer(msg); // line 729
> > ---------------
> >
> > this InviteSession::getOfferAnswer(msg) calls:
> > -------------
> > return std::auto_ptr<Contents>(Helper::getSdp(msg.getContents())); //
> line 2736
> > -------------
> >
> > when this InviteSession::getOfferAnswer(msg) returns, the error
> > happens. looks like it's caused by class type conversion?
> >
> > the following the more deep call stack for your reference.
> > ----------------------------------
> >> MediaServer.exe!resip::Helper::getSdp(resip::Contents *
> tree=0x01ad54f8) Line 2143 C++
> > MediaServer.exe!resip::InviteSession::getOfferAnswer(const
> > resip::SipMessage & msg={...}) Line 2736 + 0x12 C++
> > MediaServer.exe!resip::ServerInviteSession::dispatchStart(const
> > resip::SipMessage & msg={...}) Line 729 + 0x10 C++
> > MediaServer.exe!resip::ServerInviteSession::dispatch(const
> > resip::SipMessage & msg={...}) Line 642 C++
> > MediaServer.exe!resip::Dialog::dispatch(const resip::SipMessage &
> > msg={...}) Line 428 C++
> > MediaServer.exe!resip::DialogSet::dispatch(const resip::SipMessage
> &
> > msg={...}) Line 893 C++
> > MediaServer.exe!resip::DialogUsageManager::processRequest(const
> > resip::SipMessage & request={...}) Line 2073 + 0xf C++
> >
> MediaServer.exe!resip::DialogUsageManager::incomingProcess(std::auto_ptr<resip::Message>
> > msg={...}) Line 1617 C++
> >
> MediaServer.exe!resip::DialogUsageManager::internalProcess(std::auto_ptr<resip::Message>
> > msg={...}) Line 1447 C++
> > MediaServer.exe!resip::DumThread::thread() Line 26 C++
> > MediaServer.exe!threadIfThreadWrapper(void *
> threadParm=0x01aa03c8)
> > Line 51 + 0xd C++
> > msvcr71d.dll!_threadstartex(void * ptd=0x01aa0910) Line 241 + 0xd
> C
> > kernel32.dll!7c80b729()
> > -------------------------------------
> >
> > Could someone please take a look at this? thanks!
> >
> > -Allen
> >
> _______________________________________________
> resiprocate-devel mailing list
> resiprocate-devel at resiprocate.org
> https://list.resiprocate.org/mailman/listinfo/resiprocate-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.resiprocate.org/pipermail/resiprocate-devel/attachments/20110415/f43e5b66/attachment.htm>
More information about the resiprocate-devel
mailing list