(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@voice-system.ro]
Sent: Monday, July 09, 2007 5:43 PM
To: Papadopoulos Georgios
Cc: users(a)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@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@altecnet.gr>;tag=as4aecac7c\r\nTo:
<sip:DEMO1@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@voice-system.ro]
> Sent: Monday, July 09, 2007 3:03 PM
> To: Papadopoulos Georgios
> Cc: users(a)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@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@altecnet.gr>;tag=as2f3574dc.
>> To:
<sip:DEMO1@213.5.43.4>;tag=80299598395.
>> Contact: <sip:2116872933@213.5.17.78>.
>> Call-ID: 088e7cdc7176016349ad45ea69468b7b(a)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@voice-system.ro]
>>> Sent: Monday, July 09, 2007 12:10 PM
>>> To: Papadopoulos Georgios
>>> Cc: users(a)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@voice-system.ro]
>>>>> Sent: Friday, July 06, 2007 9:19 PM
>>>>> To: Papadopoulos Georgios
>>>>> Cc: users(a)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(a)openser.org
>>>>>
http://openser.org/cgi-bin/mailman/listinfo/users
>>>>>
>>>>>
>>>>>
>>>>>
>>>
>>>
>>>
>
>