[asterisk-bugs] [JIRA] (ASTERISK-25723) crash on dial with option p or P (privacy mode)

Tzafrir Cohen (JIRA) noreply at issues.asterisk.org
Sun Jan 24 11:47:33 CST 2016


Tzafrir Cohen created ASTERISK-25723:
----------------------------------------

             Summary: crash on dial with option p or P (privacy mode)
                 Key: ASTERISK-25723
                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-25723
             Project: Asterisk
          Issue Type: Bug
      Security Level: None
          Components: Applications/app_dial
    Affects Versions: 13.7.0, 13.6.0
         Environment: Tested on Centos 7 with Asterisk 13.6 and on Debian Testing with 13.7.0-rc2 and git branch 13 (fcb6c1737d586d5e574d3c2f865157a9632979a7).
            Reporter: Tzafrir Cohen


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 at test,30,p)
exten => test,1,Answer
 same => n,Echo
{code}

Trace:

{code}
*CLI>     -- <Local/test at test-00000000;1> Playing 'vm-sorry.gsm' (language 'en')
    -- <Local/test at test-00000000;1> Playing 'priv-callpending.gsm' (language 'en')                                                                              
    -- <Local/test at test-00000000;1> Playing 'priv-callerintros/1001.slin' (language 'en')                                                                       
    -- <Local/test at test-00000000;1> Playing 'screen-callee-options.gsm' (language 'en')                                                                         
    -- <Local/test at test-00000000;1> Playing 'vm-sorry.gsm' (language 'en')      
    -- <Local/test at test-00000000;1> Playing 'priv-callpending.gsm' (language 'en')                                                                              
    -- <Local/test at test-00000000;1> Playing 'priv-callerintros/1001.slin' (language 'en')                                                                       
    -- <Local/test at test-00000000;1> Playing 'screen-callee-options.gsm' (language 'en')                                                                         
    -- <Local/test at 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 at 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 at 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 at entry=1, 
    fmt=fmt at 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 at 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 at entry=0x7fb64400a3d8, 
    peer=peer at entry=0x7fb648003938, dialstring=dialstring at entry=0x0, 
    dialstatus=dialstatus at entry=0x7fb5eb028638 "ANSWER")
    at stasis_channels.c:424
#9  0x00007fb615530215 in dial_exec_full (chan=0x7fb64400a3d8, 
    data=<optimized out>, peerflags=peerflags at entry=0x7fb5eb028780, 
    continue_exec=continue_exec at 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 at entry=0x7fb64400a3d8, 
    app=app at entry=0x2137f80, 
    data=data at entry=0x7fb5eb028c50 "Local/test at test,30,p") at pbx_app.c:485
#12 0x0000000000564b16 in pbx_extension_helper (c=c at entry=0x7fb64400a3d8, 
    context=0x7fb64400ad90 "test", exten=exten at entry=0x7fb64400ade0 "1002", 
    priority=priority at entry=1, label=label at entry=0x0, 
    callerid=callerid at 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 at entry=0x7fb64400a3d8, args=args at entry=0x0) at pbx.c:4231
#15 0x000000000056844b in pbx_thread (data=data at 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 at entry=0x7fb64800a9e0) at datastore.c:77
77                      ast_free((void *) datastore->uid);
(gdb) print datastore->uid
$1 = 0x7fb648000920 ""
{code}



--
This message was sent by Atlassian JIRA
(v6.2#6252)



More information about the asterisk-bugs mailing list