[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:31:11 CDT 2010
A NOTE has been added to this issue.
======================================================================
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.38
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:31 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
======================================================================
----------------------------------------------------------------------
(0127095) mdu113 (reporter) - 2010-09-17 09:31
https://issues.asterisk.org/view.php?id=17970#c127095
----------------------------------------------------------------------
Hm, don't know what I was thinking. Negation in res_agi.c.diff2 is
incorrect. Should be strncasecmp(chan->name,argv[4],strlen(chan->name)),
not !strncasecmp(chan->name,argv[4],strlen(chan->name)).
Apologies...
Issue History
Date Modified Username Field Change
======================================================================
2010-09-17 09:31 mdu113 Note Added: 0127095
======================================================================
More information about the asterisk-bugs
mailing list