Summary:ASTERISK-10643: RaiseException() wrapped by ExecIf() causes segfault
Reporter:Leif Madsen (lmadsen)Labels:
Date Opened:2007-10-29 21:36:20Date Closed:2007-10-30 17:13:46
Versions:Frequency of
Environment:Attachments:( 0) segfault.txt
Description:The following line will cause a segmentation fault:

exten => s,n,ExecIf($[${DB_EXISTS(extensions/${EXTENSION}/technology)}]Set(LOCAL(TECH)=${DB_RESULT}):RaiseException(INVALID))

No such segfault occurs when RaiseException() is called unwrapped.


Find backtrace attached.
Comments:By: Russell Bryant (russell) 2007-10-30 08:14:30

FWIW, it looks like you're missing some |'s in there.  You're not using the right args format, but of course, it still shouldn't crash.

By: Russell Bryant (russell) 2007-10-30 08:17:26

Oh, you're using trunk.  Then, you were just missing a "?".  :)

By: Leif Madsen (lmadsen) 2007-10-30 08:53:46

Oh, I knew I was missing the ?. I always test all my dialplan logic with errors................ :)

By: Digium Subversion (svnbot) 2007-10-30 17:13:46

Repository: asterisk
Revision: 87724

U   trunk/apps/app_exec.c

r87724 | tilghman | 2007-10-30 17:13:45 -0500 (Tue, 30 Oct 2007) | 5 lines

If no '?' is found in the arguments, don't attempt to continue.
Reported by: blitzrage
Fixed by: tilghman
Closes issue ASTERISK-10643