[OpenSER-Users] crash when checking empty destination uri

Papadopoulos Georgios geop at altectelecoms.gr
Mon Jul 9 16:45:51 CEST 2007


(gdb) frame 1
#1  0x080847ef in comp_scriptvar (msg=0x81787b0, op=21, left=0x8170a60,
right=0x8170a6c) at route.c:948
948                     return comp_s2s(op, &lstr, &rstr);
(gdb) print lstr
$1 = {s = 0x80dc726 "", len = 0} 

> -----Original Message-----
> From: Daniel-Constantin Mierla [mailto:daniel at voice-system.ro] 
> Sent: Monday, July 09, 2007 5:43 PM
> To: Papadopoulos Georgios
> Cc: users at openser.org
> Subject: Re: [OpenSER-Users] crash when checking empty destination uri
> 
> 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