[asterisk-bugs] [Asterisk 0017970]: [patch] res_agi.c:handle_getvariablefull() failes to unlock channel if given channel name of the channel that AGI is running on

Asterisk Bug Tracker noreply at bugs.digium.com
Fri Sep 17 09:22:46 CDT 2010


The following issue has been ASSIGNED. 
====================================================================== 
https://issues.asterisk.org/view.php?id=17970 
====================================================================== 
Reported By:                mdu113
Assigned To:                bbryant
====================================================================== 
Project:                    Asterisk
Issue ID:                   17970
Category:                   Resources/res_agi
Reproducibility:            always
Severity:                   major
Priority:                   normal
Status:                     ready for testing
Target Version:             1.4.37
Asterisk Version:           SVN 
JIRA:                       SWP-2189 
Regression:                 No 
Reviewboard Link:            
SVN Branch (only for SVN checkouts, not tarball releases):  1.4  
SVN Revision (number only!): 285365 
Request Review:              
====================================================================== 
Date Submitted:             2010-09-08 12:26 CDT
Last Modified:              2010-09-17 09:22 CDT
====================================================================== 
Summary:                    [patch] res_agi.c:handle_getvariablefull() failes to
unlock channel if given channel name of the channel that AGI is running on
Description: 
AGI command GET FULL VARIABLE supports operating on a channel given as a
channel name and it is perfectly OK to supply channel name of the channel
it's running on, i.e. perl example would be:


my $channel=$agi->get_variable("CHANNEL");
my $res=$agi->get_full_variable("somevar",$channel)

In this case handle_getvariablefull() fails to unlock channel resulting in
deadlocked asterisk. It fails to unlock it because condition at line 1254
of res_agi.c in this case evaluates to false (chan2 is actually == chan)
I've attached a simple patch to fix it
====================================================================== 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2010-09-17 09:22 lmadsen        Assigned To               => bbryant         
2010-09-17 09:22 lmadsen        Target Version            => 1.4.37          
2010-09-17 09:22 lmadsen        Description Updated                          
======================================================================




More information about the asterisk-bugs mailing list