[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 sr-users
mailing list