Hi all,
Is this a bug in sofia-sip?
#0 0xffffe410 in __kernel_vsyscall ()
#1 0xb7943640 in raise () from /lib/i686/cmov/libc.so.6
#2 0xb7945018 in abort () from /lib/i686/cmov/libc.so.6
#3 0xb793c5be in __assert_fail () from /lib/i686/cmov/libc.so.6
#4 0xb7f45b50 in sub_alloc (home=0x810fa00, sub=0x810e5e8,
size=4294749616, zero=do_malloc) at su_alloc.c:425
#5 0xb7f45d4b in su_alloc (home=0x810fa00, size=-217680) at su_alloc.c:771
#6 0xb7ec6005 in msg_header_alloc (home=0x810fa00, hc=0xb7fa2ec0,
extra=-217712) at msg_parser.c:2309
#7 0xb7ec42d6 in msg_header_dup_one (home=0x810fa00, src=0x810d188)
at msg_header_copy.c:231
#8 0xb7ec3ead in msg_dup_or_copy_all (msg=0x810fa00, original=<value
optimized out>, copy_one=0xb7ec4270 <msg_header_dup_one>) at
msg_header_copy.c:507
#9 0xb7ec3fa0 in msg_dup (original=0x810bb00) at msg_header_copy.c:461
My code is just something like:
msg_t *out_msg = NULL;
msg_t *in_msg = NULL;
in_msg = nta_incoming_get_request(irq);
out_msg = msg_dup(in_msg);
The incoming request is an INVITE with multipart payload.
A deeper debugging shows that it crashes when duplicating the payload part:
(gdb) fr 8
#8 0xb7ec3ead in msg_dup_or_copy_all (msg=0x810fa00, original=<value
optimized out>, copy_one=0xb7ec4270 <msg_header_dup_one>) at
msg_header_copy.c:507
507 h = copy_one(home, sh);
(gdb) set print pretty on
(gdb) p *sh
$15 = {
sh_common = {{
h_succ = 0x0,
h_prev = 0x80b4be0,
h_class = 0xb7fa2ec0,
h_data = 0x0,
h_len = 0
}},
sh_header_next = {{
shn_common = {
h_succ = 0x0,
h_prev = 0x80b4be0,
h_class = 0xb7fa2ec0,
h_data = 0x0,
h_len = 0
},
shn_next = 0x0
}},
sh_generic = {{
g_common = {{
h_succ = 0x0,
h_prev = 0x80b4be0,
h_class = 0xb7fa2ec0,
h_data = 0x0,
h_len = 0
}},
g_next = 0x0,
g_string = 0x810c251 "--MessageBoundary\r\nContent-Type: application/sdp"
}},
sh_numeric = {{
x_common = {{
h_succ = 0x0,
h_prev = 0x80b4be0,
h_class = 0xb7fa2ec0,
h_data = 0x0,
h_len = 0
}},
x_next = 0x0,
x_value = 135316049
}},
sh_list = {{
k_common = {{
h_succ = 0x0,
h_prev = 0x80b4be0,
h_class = 0xb7fa2ec0,
h_data = 0x0,
h_len = 0
}},
k_next = 0x0,
k_items = 0x810c251
}},
sh_auth = {{
au_common = {{
h_succ = 0x0,
h_prev = 0x80b4be0,
h_class = 0xb7fa2ec0,
h_data = 0x0,
h_len = 0
}},
au_next = 0x0,
au_scheme = 0x810c251 "--MessageBoundary\r\nContent-Type:
application/sdp",
au_params = 0xfffcad8f
}},
sh_separator = {{
sep_common = {{
h_succ = 0x0,
h_prev = 0x80b4be0,
h_class = 0xb7fa2ec0,
h_data = 0x0,
h_len = 0
}},
sep_next = 0x0,
sep_data = "Q�\020\b"
}},
sh_payload = {{
pl_common = {{
h_succ = 0x0,
h_prev = 0x80b4be0,
h_class = 0xb7fa2ec0,
h_data = 0x0,
h_len = 0
}},
pl_next = 0x0,
pl_data = 0x810c251 "--MessageBoundary\r\nContent-Type: application/sdp",
pl_len = 4294749583
}},
sh_unknown = {{
un_common = {{
h_succ = 0x0,
h_prev = 0x80b4be0,
h_class = 0xb7fa2ec0,
h_data = 0x0,
h_len = 0
}},
un_next = 0x0,
un_name = 0x810c251 "--MessageBoundary\r\nContent-Type: application/sdp",
un_value = 0xfffcad8f <Address 0xfffcad8f out of bounds>
}},
sh_error = {{
er_common = {{
h_succ = 0x0,
h_prev = 0x80b4be0,
h_class = 0xb7fa2ec0,
h_data = 0x0,
h_len = 0
}},
er_next = 0x0,
er_name = 0x810c251 "--MessageBoundary\r\nContent-Type: application/sdp"
}}
}
The problem seems to come with *pl_len = 4294749583* in sh_payload,
and several pointers with value 0xfffcad8f, which are out of bounds...
The content-related headers in the SIP INVITE are:
Content-Type: multipart/mixed;boundary=MessageBoundary
Content-Length: 879
...
Cheers,
-Aleksander
------------------------------------------------------------------------------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________
Sofia-sip-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sofia-sip-devel