[reSIProcate] crash on mailformed From field.

roman.romanchenko at portaone.com roman.romanchenko at portaone.com
Thu Mar 14 08:59:15 CDT 2013


Dear resiprocate devels.

I have the following issue.

resiprocate 1.8.5

On receiving the first REGISTER message with mailformed From field 
included extra space before ">", my application based on resiprocate 
crashes into core.
Here is an example: 'From: <sip:XXXXX at sip.test.com >'

I expect that TransactionState::process would handle this in place 
where calling getTransactionId() and print something to log or call 
handleBadRequest()

Please advice.

Many thanks.

gdb stack for more details:

#0  0x0000003c524328a5 in raise () from /lib64/libc.so.6
#1  0x0000003c52434085 in abort () from /lib64/libc.so.6
#2  0x0000003c554bea5d in __gnu_cxx::__verbose_terminate_handler() () 
from /usr/lib64/libstdc++.so.6
#3  0x0000003c554bcbe6 in ?? () from /usr/lib64/libstdc++.so.6
#4  0x0000003c554bcc13 in std::terminate() () from 
/usr/lib64/libstdc++.so.6
#5  0x0000003c554bcd0e in __cxa_throw () from /usr/lib64/libstdc++.so.6
#6  0x0000003c5d63fb8a in resip::ParseBuffer::fail 
(this=0x7f5cf3ffe180, file=0x3c5d66493f "ParseBuffer.cxx", line=62, 
detail=<value optimized out>) at ParseBuffer.cxx:964
#7  0x0000003c5d6406bc in resip::ParseBuffer::skipChar 
(this=0x7f5cf3ffe180, c=62 '>') at ParseBuffer.cxx:62
#8  0x0000003c5eedbaf9 in resip::NameAddr::parse (this=0x7f5c5d96ba60, 
pb=...) at NameAddr.cxx:241
#9  0x0000003c5ef27d9c in resip::LazyParser::doParse (this=<value 
optimized out>) at LazyParser.cxx:79
#10 0x0000003c5eed6af0 in checkParsed (this=0x7f5c5d96ba60, 
paramType=...) at ../../resip/stack/LazyParser.hxx:106
#11 resip::NameAddr::exists (this=0x7f5c5d96ba60, paramType=...) at 
NameAddr.cxx:434
#12 0x0000003c5ef61266 in resip::SipMessage::compute2543TransactionHash 
(this=0x7f5c5d96b4c0) at SipMessage.cxx:424
#13 0x0000003c5ef61e28 in resip::SipMessage::getTransactionId 
(this=0x7f5c5d96b4c0) at SipMessage.cxx:357
#14 0x0000003c5ef8641a in resip::TransactionState::process 
(controller=..., message=0x7f5c5d96b4c0) at TransactionState.cxx:468
#15 0x0000003c5ef77720 in resip::TransactionController::process 
(this=0x563ffa0, timeout=<value optimized out>) at 
TransactionController.cxx:141
#16 0x0000003c5ef69f81 in resip::TransactionControllerThread::thread 
(this=0x3e81460) at ../../resip/stack/TransactionControllerThread.hxx:30
#17 0x0000003c5d646e3a in threadIfThreadWrapper (threadParm=<value 
optimized out>) at ThreadIf.cxx:51
#18 0x0000003c52c07851 in start_thread () from /lib64/libpthread.so.0
#19 0x0000003c524e811d in clone () from /lib64/libc.so.6




More information about the resiprocate-devel mailing list