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:[EMAIL PROTECTED] SIP/2.0\r\nVia: SIP/2.0/UDP
213.5.17.78:5060;branch=z9hG4bK7a9dbc5b;rport\r\nFrom: \"GEOP
Papadopoul\" <sip:[EMAIL PROTECTED]>;tag=as4aecac7c\r\nTo:
<sip:[EMAIL PROTECTED]>;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:[EMAIL PROTECTED] Sent: Monday, July 09, 2007 3:03 PM
To: Papadopoulos Georgios
Cc: [email protected]
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:[EMAIL PROTECTED]: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:[EMAIL PROTECTED]>;tag=as2f3574dc.
To: <sip:[EMAIL PROTECTED]>;tag=80299598395.
Contact: <sip:[EMAIL PROTECTED]>.
Call-ID: [EMAIL PROTECTED]
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:[EMAIL PROTECTED]
Sent: Monday, July 09, 2007 12:10 PM
To: Papadopoulos Georgios
Cc: [email protected]
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:[EMAIL PROTECTED]
Sent: Friday, July 06, 2007 9:19 PM
To: Papadopoulos Georgios
Cc: [email protected]
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
[email protected]
http://openser.org/cgi-bin/mailman/listinfo/users


_______________________________________________
Users mailing list
[email protected]
http://openser.org/cgi-bin/mailman/listinfo/users

Reply via email to