[asterisk-dev] bweschke: branch 1.4 r150816 - /branches/1.4/main/manager.c

Russell Bryant russell at digium.com
Sun Oct 19 20:39:29 CDT 2008

On Oct 17, 2008, at 8:42 PM, SVN commits to the Digium repositories  

> Author: bweschke
> Date: Fri Oct 17 20:42:23 2008
> New Revision: 150816
> URL: http://svn.digium.com/view/asterisk?view=rev&rev=150816
> Log:
> Using the GetVar handler in AMI is potentially dangerous (insta- 
> crash [tm]) when you use a dialplan function that requires a channel  
> and then you don't provide one or provide an invalid one in the  
> Channel: parameter. We'll handle this situation exactly the same way  
> it was handled in pbx.c back on r61766. We'll create a bo
> gus channel for the function call and destroy it when we're done. If  
> we have trouble allocating the bogus channel then we're not going to  
> try executing the function call at all and run the risk of crashing.

I do not have a direct problem with this change, because it is the  
correct thing to do if dialplan functions are allowed to assume a  
channel is present.

However, I'd like to propose that for the sake of performance, we  
handle this the opposite way.  How about we make it so that dialplan  
functions are _not_ allowed to assume that a channel will be present.   
For any function that _must_ have a channel to do something useful  
(like the CHANNEL() function!), just make it return an error if no  
channel is provided.


Russell Bryant
Senior Software Engineer
Open Source Team Lead
Digium, Inc.

More information about the asterisk-dev mailing list