res_agi.c:handle_getvariablefull() could recursively lock a channel and not

release it if an argument is the current channel's name.

(closes issue #17970)
Reported by: mdu113
Patches: 
      res_agi.c.diff3 uploaded by mdu113 (license 582)
      Tested by: mdu113

      Review: https://reviewboard.asterisk.org/r/947/


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@289500 65c4cc65-6c06-0410-ace0-fbb531ad65f3
1.4
Brett Bryant 16 years ago
parent c4f3f68e43
commit b4ec9c389a

@ -1240,7 +1240,7 @@ static int handle_getvariablefull(struct ast_channel *chan, AGI *agi, int argc,
if ((argc != 4) && (argc != 5))
return RESULT_SHOWUSAGE;
if (argc == 5) {
if (argc == 5 && strcasecmp(chan->name, argv[4])) {
chan2 = ast_get_channel_by_name_locked(argv[4]);
} else {
chan2 = chan;

Loading…
Cancel
Save