Summary: | ASTERISK-25723: crash on dial with option p or P (privacy mode) | ||||
Reporter: | Tzafrir Cohen (tzafrir) | Labels: | |||
Date Opened: | 2016-01-24 11:47:22.000-0600 | Date Closed: | 2016-01-24 11:51:44.000-0600 | ||
Priority: | Major | Regression? | |||
Status: | Closed/Complete | Components: | Applications/app_dial | ||
Versions: | 13.6.0 13.7.0 | Frequency of Occurrence | |||
Related Issues: |
| ||||
Environment: | Tested on Centos 7 with Asterisk 13.6 and on Debian Testing with 13.7.0-rc2 and git branch 13 (fcb6c1737d586d5e574d3c2f865157a9632979a7). | Attachments: | |||
Description: | I use default settings (as far as I can tell) and the following dialplan:
In order to reproduce I need to call from one extension to another and in the target extension either reject (press 2 or whatever) or just wait for a timeout. At this point Asterisk crashes. {code} [test] exten => 1000,1,Dial(SIP/1000,30,p) exten => 1001,1,Dial(SIP/1001,30,p) ; For times where I don't have an extra phone: exten => 1002,1,Dial(Local/test@test,30,p) exten => test,1,Answer same => n,Echo {code} Trace: {code} *CLI> -- <Local/test@test-00000000;1> Playing 'vm-sorry.gsm' (language 'en') -- <Local/test@test-00000000;1> Playing 'priv-callpending.gsm' (language 'en') -- <Local/test@test-00000000;1> Playing 'priv-callerintros/1001.slin' (language 'en') -- <Local/test@test-00000000;1> Playing 'screen-callee-options.gsm' (language 'en') -- <Local/test@test-00000000;1> Playing 'vm-sorry.gsm' (language 'en') -- <Local/test@test-00000000;1> Playing 'priv-callpending.gsm' (language 'en') -- <Local/test@test-00000000;1> Playing 'priv-callerintros/1001.slin' (language 'en') -- <Local/test@test-00000000;1> Playing 'screen-callee-options.gsm' (language 'en') -- <Local/test@test-00000000;1> Playing 'vm-sorry.gsm' (language 'en') [Jan 24 18:41:31] NOTICE[13875][C-00000000]: app_dial.c:1855 do_privacy: privacy: no valid response from the callee. Sending the caller to voicemail, the callee isn't responding == Spawn extension (test, test, 2) exited non-zero on 'Local/test@test-00000000;2' *** Error in `/home/tzafrir/Proj/Alioth/pkg-voip-git/asterisk/asterisk/live/usr/sbin/asterisk': free(): invalid size: 0x00007efe30003d70 *** Aborted (core dumped) {code} Backtrace (From Git branch 13 on Debian): {code} #0 0x00007fb66f3d9657 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:55 #1 0x00007fb66f3daa2a in __GI_abort () at abort.c:89 #2 0x00007fb66f417bb3 in __libc_message (do_abort=do_abort@entry=1, fmt=fmt@entry=0x7fb66f5105f8 "*** Error in `%s': %s: 0x%s ***\n") at ../sysdeps/posix/libc_fatal.c:175 #3 0x00007fb66f41d00e in malloc_printerr (action=1, str=0x7fb66f50c787 "free(): invalid pointer", ptr=<optimized out>) at malloc.c:4965 #4 0x00007fb66f41d7eb in _int_free (av=<optimized out>, p=<optimized out>, have_lock=0) at malloc.c:3834 #5 0x00000000004e6db1 in ast_datastore_free ( datastore=datastore@entry=0x7fb64800a9e0) at datastore.c:77 #6 0x00000000005b5c1b in remove_dial_masquerade (peer=0x7fb648003938) at stasis_channels.c:1708 #7 ast_channel_publish_dial_forward (forwarded=0x0, forward=0x0, dialstatus=0x7fb5eb028638 "ANSWER", dialstring=0x0, peer=0x7fb648003938, caller=<optimized out>) at stasis_channels.c:404 #8 ast_channel_publish_dial (caller=caller@entry=0x7fb64400a3d8, peer=peer@entry=0x7fb648003938, dialstring=dialstring@entry=0x0, dialstatus=dialstatus@entry=0x7fb5eb028638 "ANSWER") at stasis_channels.c:424 #9 0x00007fb615530215 in dial_exec_full (chan=0x7fb64400a3d8, data=<optimized out>, peerflags=peerflags@entry=0x7fb5eb028780, continue_exec=continue_exec@entry=0x0) at app_dial.c:2730 #10 0x00007fb615530d26 in dial_exec (chan=<optimized out>, data=<optimized out>) at app_dial.c:3138 #11 0x000000000056fb5d in pbx_exec (c=c@entry=0x7fb64400a3d8, app=app@entry=0x2137f80, data=data@entry=0x7fb5eb028c50 "Local/test@test,30,p") at pbx_app.c:485 #12 0x0000000000564b16 in pbx_extension_helper (c=c@entry=0x7fb64400a3d8, context=0x7fb64400ad90 "test", exten=exten@entry=0x7fb64400ade0 "1002", priority=priority@entry=1, label=label@entry=0x0, callerid=callerid@entry=0x7fb64400bd90 "1001", action=E_SPAWN, found=0x7fb5eb02acec, combined_find_spawn=1, con=0x0) at pbx.c:2834 #13 0x0000000000566f71 in ast_spawn_extension (combined_find_spawn=1, found=0x7fb5eb02acec, callerid=0x7fb64400bd90 "1001", priority=1, exten=0x7fb64400ade0 "1002", context=<optimized out>, c=0x7fb64400a3d8) at pbx.c:4056 #14 __ast_pbx_run (c=c@entry=0x7fb64400a3d8, args=args@entry=0x0) at pbx.c:4231 #15 0x000000000056844b in pbx_thread (data=data@entry=0x7fb64400a3d8) at pbx.c:4551 #16 0x00000000005d552a in dummy_start (data=<optimized out>) at utils.c:1237 #17 0x00007fb67044c284 in start_thread (arg=0x7fb5eb02b700) at pthread_create.c:333 #18 0x00007fb66f48e74d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 (gdb) frame 5 #5 0x00000000004e6db1 in ast_datastore_free ( datastore=datastore@entry=0x7fb64800a9e0) at datastore.c:77 77 ast_free((void *) datastore->uid); (gdb) print datastore->uid $1 = 0x7fb648000920 "" {code} | ||||
Comments: | By: Asterisk Team (asteriskteam) 2016-01-24 11:47:24.081-0600 Thanks for creating a report! The issue has entered the triage process. That means the issue will wait in this status until a Bug Marshal has an opportunity to review the issue. Once the issue has been reviewed you will receive comments regarding the next steps towards resolution. A good first step is for you to review the [Asterisk Issue Guidelines|https://wiki.asterisk.org/wiki/display/AST/Asterisk+Issue+Guidelines] if you haven't already. The guidelines detail what is expected from an Asterisk issue report. Then, if you are submitting a patch, please review the [Patch Contribution Process|https://wiki.asterisk.org/wiki/display/AST/Patch+Contribution+Process]. |