[Home]

Summary:ASTERISK-00202: Inbound IAX2 calls block asterisk and/or crash it.
Reporter:Brian West (bkw918)Labels:
Date Opened:2003-08-31 21:15:30Date Closed:2004-09-25 02:40:13
Priority:CriticalRegression?No
Status:Closed/CompleteComponents:Core/General
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:( 0) chan_iax2.c.diff
( 1) chan_iax2-correct.c.diff
Description:Outbound IAX2 calls do not do this.  After testing over and over it seems that inbound calls will block/crash asterisk.

I have included a full bt

****** ADDITIONAL INFORMATION ******

standard bt:
#0  0x41b94630 in match (sin=0x4492ea3c, callno=6, dcallno=0, cur=0x4492ebe0) at chan_iax2.c:644
#1  0x41b94bcd in find_callno (callno=6, dcallno=0, sin=0x4492ea3c, new=1, lockpeer=1) at chan_iax2.c:739
#2  0x41b9f20e in socket_read (id=0x80ea068, fd=18, events=1, cbdata=0x0) at chan_iax2.c:3780
#3  0x0805178a in ast_io_wait (ioc=0x80e8000, howlong=26) at io.c:268
#4  0x41ba4445 in network_thread (ignore=0x0) at chan_iax2.c:4758
ASTERISK-1  0x40022941 in pthread_start_thread () from /lib/i686/libpthread.so.0


bt full:

#0  0x41b94630 in match (sin=0x4492ea3c, callno=6, dcallno=0, cur=0x4492ebe0) at chan_iax2.c:644
No locals.
#1  0x41b94bcd in find_callno (callno=6, dcallno=0, sin=0x4492ea3c, new=1, lockpeer=1) at chan_iax2.c:739
       res = 0
       x = 5
       now = {tv_sec = 4096, tv_usec = 0}
#2  0x41b9f20e in socket_read (id=0x80ea068, fd=18, events=1, cbdata=0x0) at chan_iax2.c:3780
       sin = {sin_family = 2, sin_port = 55569, sin_addr = {s_addr = 2451318337}, sin_zero = "\0\0\0\0\0\0\0"}
       res = 64
       updatehistory = 1
       new = 1
       buf = "\200\006\0\0\0\0\0\001\0\0\006\001\v\002\0\002\001\001s\002\0041000\004\nBrian West\n\002en\006\005brian\t\004\
\002\b\004\0\0\004\002\f\002\0\002", '\0' <repeats 2620 times>, "Т\022B>æ\222D>\235ºA\a\0\0\0\0\0\0\0Lé\a\b\0\0\0\024H\214\00
0@", '\0' <repeats 45 times>, "'d\002@", '\0' <repeats 28 times>, "àë\222D", '\0' <repeats 12 times>, "'d\002@", '\0' <repeats
imes>, "àë\222DLé\a\b\0\0\0\024H\214\002B\0\0@", '\0' <repeats 45 times>, "'d\002@", '\0' <repeats 28 times>...
       ptr = 0x0
       len = 16
       dcallno = 0
       fh = (struct ast_iax2_full_hdr *) 0x4492da2c
       mh = (struct ast_iax2_mini_hdr *) 0x4492da2c
       meta = (struct ast_iax2_meta_hdr *) 0x4492da2c
       vh = (struct ast_iax2_video_hdr *) 0x4492da2c
       mth = (struct ast_iax2_meta_trunk_hdr *) 0x0
       mte = (struct ast_iax2_meta_trunk_entry *) 0x0
       dblbuf = "\0\222I$P\0I$\222I$P\0I$\222I$P\0I$\222I$&acute;aêÅ\024fWç&curren;LXdè\210\030\f", '\0' <repeats 1059 times>, "Т\022B",
<repeats 16 times>, "Lé\a\b\0\0\0\024H\214\002B\0\0@", '\0' <repeats 129 times>, "Lé\a\b\0\0\0\024H\214\002B\0\0@", '\0' <repe
37 times>, "+\213\002BТ\022B\027\0\0\0\0\0@\0\004Ñ\222D}\212\002B\027\0\0\0\\Ð\222DÌÏ\222D", '\0' <repeats 18 times>, "@", '\
epeats 13 times>, "\\Ð\222DLé\a\b\0\0@", '\0' <repeats 128 times>, "\024H\214\002B\0\0"...
       fr = {callno = 0, dcallno = 0, data = 0x0, datalen = 0, retries = 0, ts = 6232, retrytime = 0, outoforder = 0,
 sentyet = 0, oseqno = 3, iseqno = 4, transfer = 0, final = 0, direction = 0, retrans = 0, next = 0x0, prev = 0x0, af = {
   frametype = 2, subclass = 2, datalen = 33, samples = 160, mallocd = 0, offset = 64, src = 0x41ba8f87 "IAX2",
   data = 0x4492c9f4, prev = 0x0, next = 0x0}, unused = '\0' <repeats 63 times>, afdata = 0x4492c9f4 "Ø ¢áZP"}
       cur = (struct iax_frame *) 0x0
       f = {frametype = 6, subclass = 1, datalen = 0, samples = 160, mallocd = 0, offset = 0, src = 0x41ba8f87 "IAX2",
 data = 0x0, prev = 0x0, next = 0x0}
       c = (struct ast_channel *) 0x8122910
       dp = (struct iax2_dpcache *) 0x0
       peer = (struct iax2_peer *) 0x0
       ies = {called_number = 0x0, calling_number = 0x0, calling_ani = 0x0, calling_name = 0x0, called_context = 0x0,
 username = 0x0, password = 0x0, capability = 0, format = 0, language = 0x0, version = 0, adsicpe = 0, dnid = 0x0, rdnis = 0x
 authmethods = 0, challenge = 0x0, md5_result = 0x0, rsa_result = 0x0, apparent_addr = 0x0, refresh = 0, dpstatus = 0,
 callno = 0, cause = 0x0, iax_unknown = 0 '\0', msgcount = 0, autoanswer = 0, musiconhold = 0, transferid = 0}
       ied0 = {buf = '\0' <repeats 1023 times>, pos = 0}
       ied1 = {buf = "\t\004\0\0\0\002", '\0' <repeats 1017 times>, pos = 6}
       format = 2
       exists = -1
       mm = 0
       minivid = 0
       ts = 0
       empty = '\0' <repeats 31 times>
#3  0x0805178a in ast_io_wait (ioc=0x80e8000, howlong=26) at io.c:268
       res = 1
       x = 0
       origcnt = 2
#4  0x41ba4445 in network_thread (ignore=0x0) at chan_iax2.c:4758
---Type <return> to continue, or q <return> to quit---
       res = 26
       f = (struct iax_frame *) 0x0
       freeme = (struct iax_frame *) 0x0
ASTERISK-1  0x40022941 in pthread_start_thread () from /lib/i686/libpthread.so.0
No symbol table info available.
Comments:By: Brian West (bkw918) 2003-08-31 21:34:41

lines 4028 and 4030 in chan_iax2.c change iaxs to iaxsl seems to have fixed it....

bkw

By: Mark Spencer (markster) 2003-09-01 10:25:32

Fixed in CVS