[OpenSER-Users] crash when checking empty destination uri

Daniel-Constantin Mierla daniel at voice-system.ro
Mon Jul 9 16:43:10 CEST 2007


Hello,

in gdb, please do:

frame 1
print lstr

and send me the output. Strange that in frame 0, the stack seems to be 
corrupted.

Thanks,
Daniel


On 07/09/07 15:08, Papadopoulos Georgios wrote:
> #0  0x080844a7 in comp_s2s (op=Variable "op" is not available.
> ) at route.c:748
> #1  0x080847ef in comp_scriptvar (msg=0x81787b0, op=21, left=0x8170a60,
> right=0x8170a6c) at route.c:948
> #2  0x080850a5 in eval_expr (e=0x8170a58, msg=0x81787b0, val=0x0) at
> route.c:1323
> #3  0x0808517e in eval_expr (e=0x8170c38, msg=0x81787b0, val=0x0) at
> route.c:1365
> #4  0x08084dcf in eval_expr (e=0x8170c60, msg=0x81787b0, val=0x0) at
> route.c:1374
> #5  0x08050b5c in do_action (a=0x8170ed0, msg=0x81787b0) at action.c:783
> #6  0x0805329c in run_action_list (a=0x81708c0, msg=0x81787b0) at
> action.c:131
> #7  0x08051c20 in do_action (a=0x8166648, msg=0x81787b0) at action.c:111
> #8  0x0805329c in run_action_list (a=0x8155010, msg=0x81787b0) at
> action.c:131
> #9  0x080534cf in run_top_route (a=0x8155010, msg=0x81787b0) at
> action.c:111
> #10 0x0807b4a6 in receive_msg (
>     buf=0x811b160 "ACK sip:DEMO1 at 213.5.43.4 SIP/2.0\r\nVia: SIP/2.0/UDP
> 213.5.17.78:5060;branch=z9hG4bK7a9dbc5b;rport\r\nFrom: \"GEOP
> Papadopoul\" <sip:2116872933 at altecnet.gr>;tag=as4aecac7c\r\nTo:
> <sip:DEMO1 at 213.5.43.4>;tag=b3"..., len=411, 
>     rcv_info=0xbffb2d40) at receive.c:156
> #11 0x080a4475 in udp_rcv_loop () at udp_server.c:451
> #12 0x0806a116 in main_loop () at main.c:834
> #13 0x0806c007 in main (argc=6, argv=0xbffb2f24) at main.c:1393
>  
>
>   
>> -----Original Message-----
>> From: Daniel-Constantin Mierla [mailto:daniel at voice-system.ro] 
>> Sent: Monday, July 09, 2007 3:03 PM
>> To: Papadopoulos Georgios
>> Cc: users at openser.org
>> Subject: Re: [OpenSER-Users] crash when checking empty destination uri
>>
>> Hello,
>>
>> On 07/09/07 13:50, Papadopoulos Georgios wrote:
>>     
>>> Hi Daniel,
>>>
>>> Here is the ACK packet
>>>
>>> U 2007/07/09 13:13:31.577697 213.5.17.78:5060 -> 
>>>       
>> 213.5.43.4:5060 ACK 
>>     
>>> sip:demo1 at 213.5.168.214:54656 SIP/2.0.
>>> Via: SIP/2.0/UDP 213.5.17.78:5060;branch=z9hG4bK504461f5;rport.
>>> Route: <sip:213.5.43.4;lr=on;ftag=as2f3574dc>.
>>> From: "GEOP Papadopoul" <sip:2116872933 at altecnet.gr>;tag=as2f3574dc.
>>> To: <sip:DEMO1 at 213.5.43.4>;tag=80299598395.
>>> Contact: <sip:2116872933 at 213.5.17.78>.
>>> Call-ID: 088e7cdc7176016349ad45ea69468b7b at altecnet.gr.
>>> CSeq: 102 ACK.
>>> User-Agent: Asterisk PBX.
>>> Max-Forwards: 70.
>>> Content-Length: 0.
>>>
>>> How do I get the backtrace that you need? All I get from 
>>>       
>> gdb is this:
>>     
>>> #0  0x080844a7 in ?? ()
>>> #1  0xbffb26e0 in ?? ()
>>> #2  0x00b56cee in ?? ()
>>> #3  0x00000000 in ?? ()
>>>   
>>>       
>> Check if you got a core file, and then:
>> gdb /path/to/openser /path/to/core_file
>>
>> # bt
>>
>> Cheers,
>> Daniel
>>
>>     
>>> Best regards
>>>
>>> George
>>>
>>>
>>>
>>>   
>>>       
>>>> -----Original Message-----
>>>> From: Daniel-Constantin Mierla [mailto:daniel at voice-system.ro]
>>>> Sent: Monday, July 09, 2007 12:10 PM
>>>> To: Papadopoulos Georgios
>>>> Cc: users at openser.org
>>>> Subject: Re: [OpenSER-Users] crash when checking empty destination 
>>>> uri
>>>>
>>>> Hello George,
>>>>
>>>> if loose_route returns true, the $du should be set. Can 
>>>>         
>> you send me a 
>>     
>>>> sample of such ACK along with the backtrace?
>>>>
>>>> Cheers,
>>>> Daniel
>>>>
>>>>
>>>> On 07/09/07 10:52, Papadopoulos Georgios wrote:
>>>>     
>>>>         
>>>>> Hi Daniel,
>>>>>
>>>>> Thank you for looking into this. I got from SVN the patch 
>>>>>           
>> for rev. 
>>     
>>>>> 2420 and I applied it to my 1.2 branch. OpenSER still
>>>>>       
>>>>>           
>>>> crashes at the
>>>>     
>>>>         
>>>>> same point. Did I get the right patch? The one I have
>>>>>       
>>>>>           
>>>> changes one line
>>>>     
>>>>         
>>>>> on route.c and transformations.c. I will add it at the end
>>>>>       
>>>>>           
>>>> of the email.
>>>>     
>>>>         
>>>>> Best regards
>>>>>
>>>>> George
>>>>>
>>>>>  
>>>>> Index: route.c^M
>>>>>
>>>>>       
>>>>>           
>> ===================================================================^M
>>     
>>>>     
>>>>         
>>>>> --- route.c     (revision 2419)^M
>>>>> +++ route.c     (revision 2420)^M
>>>>> @@ -446,6 +446,9 @@^M
>>>>>         char backup2;
>>>>>         str res;
>>>>>         xl_value_t value;
>>>>> +
>>>>> +       if(ival==NULL || ival->s==NULL)
>>>>> +               goto error;
>>>>>
>>>>>         res.s = 0; res.len = 0;
>>>>>         if(opd->type == SCRIPTVAR_ST)
>>>>> Index: transformations.c^M
>>>>>
>>>>>       
>>>>>           
>> ===================================================================^M
>>     
>>>>     
>>>>         
>>>>> --- transformations.c   (revision 2419)^M
>>>>> +++ transformations.c   (revision 2420)^M
>>>>> @@ -71,7 +71,8 @@^M
>>>>>         char *p, *s;
>>>>>         str st;
>>>>>         xl_value_t v;
>>>>> -       if(val==NULL)
>>>>> +
>>>>> +       if(val==NULL || val->flags&XL_VAL_NULL)
>>>>>                 return -1;
>>>>>
>>>>>         switch(subtype)
>>>>>
>>>>>
>>>>>
>>>>>   
>>>>>       
>>>>>           
>>>>>> -----Original Message-----
>>>>>> From: Daniel-Constantin Mierla [mailto:daniel at voice-system.ro]
>>>>>> Sent: Friday, July 06, 2007 9:19 PM
>>>>>> To: Papadopoulos Georgios
>>>>>> Cc: users at openser.org
>>>>>> Subject: Re: [OpenSER-Users] crash when checking empty 
>>>>>>             
>> destination 
>>     
>>>>>> uri
>>>>>>
>>>>>> Hello,
>>>>>>
>>>>>> On 07/06/07 17:09, Papadopoulos Georgios wrote:
>>>>>>     
>>>>>>         
>>>>>>             
>>>>>>> Hello,
>>>>>>>  
>>>>>>> I have the following line in my script which causes OpenSER
>>>>>>>       
>>>>>>>           
>>>>>>>               
>>>>>> (1.2) to
>>>>>>     
>>>>>>         
>>>>>>             
>>>>>>> crash when the execution gets there for an ACK.
>>>>>>> if ($du=~"[@:](192\.168\.|10\.|172\.(1[6-9]|2[0-9]|3[0-1])\.)")
>>>>>>> It gets at this line when an ACK is received and after
>>>>>>>       
>>>>>>>           
>>>>>>>               
>>>>>> loose_route()
>>>>>>     
>>>>>>         
>>>>>>             
>>>>>>> returns true. So I am guessing the destination uri is
>>>>>>>           
>>>>>>>               
>>>> null at that
>>>>     
>>>>         
>>>>>>> point and the check causes OpenSER to crash.
>>>>>>>  
>>>>>>> If I add the following check then everything works fine.
>>>>>>> if (isdsturiset() &&
>>>>>>> $du=~"[@:](192\.168\.|10\.|172\.(1[6-9]|2[0-9]|3[0-1])\.)")
>>>>>>>       
>>>>>>>           
>>>>>>>               
>>>>>> can you test with devel version? I applied a patch, and if
>>>>>>         
>>>>>>             
>>>> ok, I will
>>>>     
>>>>         
>>>>>> backport. Thanks for reporting.
>>>>>>
>>>>>> Cheers,
>>>>>> Daniel
>>>>>>
>>>>>>     
>>>>>>         
>>>>>>             
>>>>>>>  
>>>>>>> thank you
>>>>>>>  
>>>>>>> George
>>>>>>>  
>>>>>>>
>>>>>>>
>>>>>>>   Disclaimer
>>>>>>>
>>>>>>> The information in this e-mail and any attachments is
>>>>>>>       
>>>>>>>           
>>>>>>>               
>>>>>> confidential. It
>>>>>>     
>>>>>>         
>>>>>>             
>>>>>>> is intended solely for the attention and use of the named 
>>>>>>> addressee(s). If you are not the intended recipient, or person 
>>>>>>> responsible for delivering this information to the intended
>>>>>>>       
>>>>>>>           
>>>>>>>               
>>>>>> recipient,
>>>>>>     
>>>>>>         
>>>>>>             
>>>>>>> please notify the sender immediately. Unless you are 
>>>>>>>               
>> the intended 
>>     
>>>>>>> recipient or his/her representative you are not
>>>>>>>           
>>>>>>>               
>>>> authorized to, and
>>>>     
>>>>         
>>>>>>> must not, read, copy, distribute, use or retain this
>>>>>>>           
>>>>>>>               
>>>> message or any
>>>>     
>>>>         
>>>>>>> part of it. E-mail transmission cannot be guaranteed to be
>>>>>>>       
>>>>>>>           
>>>>>>>               
>>>>>> secure or
>>>>>>     
>>>>>>         
>>>>>>             
>>>>>>> error-free as information could be intercepted, 
>>>>>>>               
>> corrupted, lost, 
>>     
>>>>>>> destroyed, arrive late or incomplete, or contain viruses.
>>>>>>>
>>>>>>>
>>>>>>>       
>>>>>>>           
>>>>>>>               
>> ---------------------------------------------------------------------
>>     
>>>>     
>>>>         
>>>>>> -
>>>>>>     
>>>>>>         
>>>>>>             
>>>>>>> --
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Users mailing list
>>>>>>> Users at openser.org
>>>>>>> http://openser.org/cgi-bin/mailman/listinfo/users
>>>>>>>   
>>>>>>>       
>>>>>>>           
>>>>>>>               
>>>>>   
>>>>>       
>>>>>           
>>>   
>>>       
>
>   




More information about the Users mailing list