diff options
author | bbryant <bbryant@f38db490-d61c-443f-a65b-d21fe96a405b> | 2010-09-30 17:08:20 +0000 |
---|---|---|
committer | bbryant <bbryant@f38db490-d61c-443f-a65b-d21fe96a405b> | 2010-09-30 17:08:20 +0000 |
commit | 4b071e1960d468fa9b66639395504b05c52980e4 (patch) | |
tree | 452b7b711807a35aa3ba53379a71337a18f73b02 /res/res_agi.c | |
parent | 1bcccf83444032d4dbb38f66975946602d4c0aa4 (diff) |
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: http://svn.digium.com/svn/asterisk/branches/1.4@289500 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'res/res_agi.c')
-rw-r--r-- | res/res_agi.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/res/res_agi.c b/res/res_agi.c index 27d363429..75f2a1bdf 100644 --- a/res/res_agi.c +++ b/res/res_agi.c @@ -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; |