[asterisk-bugs] [JIRA] (ASTERISK-28159) SIGABRT caused by stack corruption in hashkeys_read when no matching keys present
Michael Walton (JIRA)
noreply at issues.asterisk.org
Sun Nov 11 20:23:47 CST 2018
Michael Walton created ASTERISK-28159:
-----------------------------------------
Summary: SIGABRT caused by stack corruption in hashkeys_read when no matching keys present
Key: ASTERISK-28159
URL: https://issues.asterisk.org/jira/browse/ASTERISK-28159
Project: Asterisk
Issue Type: Bug
Security Level: None
Components: Functions/func_strings
Affects Versions: 13.15.0
Environment: Ubuntu 16.04, arm64
Reporter: Michael Walton
On an arm64 build of Asterisk 13, a SIGABRT is raised, causing core dump. This was seen, and reproducible on a FreePBX 14 system in the macro-dial-one Dial() application, which causes a gosub to func-apply-sipheaders. This macro in turn reads HASHKEYS(SIPHEADERS), invoking the hashkeys_read() function via ast_func_read(). If there are no hash keys that match, asterisk crashes - on return from ast_func_read(), the compiler stack check fails with "stack smashing detected", causing SIGABRT. Stack trace is:
{noformat}
#0 0x0000ffff995ba528 in __GI_raise (sig=sig at entry=6)
at ../sysdeps/unix/sysv/linux/raise.c:54
#1 0x0000ffff995bb9e0 in __GI_abort () at abort.c:89
#2 0x0000ffff995f18c4 in __libc_message (do_abort=do_abort at entry=1,
fmt=fmt at entry=0xffff996a57e0 "*** %s ***: %s terminated\n")
at ../sysdeps/posix/libc_fatal.c:175
#3 0x0000ffff9965f668 in __GI___fortify_fail (
msg=msg at entry=0xffff996a57c0 "stack smashing detected")
at fortify_fail.c:37
#4 0x0000ffff9965f5fc in __stack_chk_fail () at stack_chk_fail.c:28
#5 0x000000000054a910 in ast_func_read (chan=chan at entry=0xffff50003bb8,
function=function at entry=0xffff1943cc50 "HASHKEYS(SIPHEADERS)",
workspace=workspace at entry=0xffff1943bc40 "", len=len at entry=4096)
at pbx_functions.c:640
#6 0x000000000054e238 in pbx_substitute_variables_helper_full (
c=c at entry=0xffff50003bb8, headp=0xffff50004380,
cp1=cp1 at entry=0xffff1943ddd0 "SIPHEADERKEYS=${HASHKEYS(SIPHEADERS)}",
cp2=0xffff1943e2d6 "", cp2 at entry=0xffff1943e2c8 "SIPHEADERKEYS=",
count=8177, count at entry=8191, used=used at entry=0xffff1943dda0)
at pbx_variables.c:693
#7 0x000000000054e898 in pbx_substitute_variables_helper (
c=c at entry=0xffff50003bb8,
cp1=cp1 at entry=0xffff1943ddd0 "SIPHEADERKEYS=${HASHKEYS(SIPHEADERS)}",
---Type <return> to continue, or q <return> to quit---
cp2=cp2 at entry=0xffff1943e2c8 "SIPHEADERKEYS=", count=count at entry=8191)
at pbx_variables.c:790
#8 0x000000000053d278 in pbx_extension_helper (c=0xffff50003bb8,
con=con at entry=0x0, context=0xffff50004570 "func-apply-sipheaders",
exten=0xffff500045c0 "s", priority=2, label=label at entry=0x0,
callerid=<optimized out>, action=action at entry=E_SPAWN,
found=0xffff194403d4, combined_find_spawn=1) at pbx.c:2873
#9 0x000000000053e25c in ast_spawn_extension (c=<optimized out>,
context=<optimized out>, exten=<optimized out>, priority=<optimized out>,
callerid=<optimized out>, found=<optimized out>,
combined_find_spawn=<optimized out>) at pbx.c:4109
#10 0x0000ffff9561a748 in ?? ()
{noformat}
--
This message was sent by Atlassian JIRA
(v6.2#6252)
More information about the asterisk-bugs
mailing list