[OpenSER-Users] crash when checking empty destination uri

Papadopoulos Georgios geop at altectelecoms.gr
Mon Jul 9 14:08:51 CEST 2007


#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