mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-12 15:45:18 +00:00
Fix a problem in ChanSpy where it could get stuck in an infinite loop without
being able to detect that the calling channel hung up. (closes issue #12076, reported by junky, patched by me) git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@104625 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -538,6 +538,12 @@ static int common_exec(struct ast_channel *chan, const struct ast_flags *flags,
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ast_check_hangup(chan)) {
|
||||||
|
ast_channel_unlock(peer);
|
||||||
|
chanspy_ds_free(peer_chanspy_ds);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
if (peer == chan) {
|
if (peer == chan) {
|
||||||
ast_channel_unlock(peer);
|
ast_channel_unlock(peer);
|
||||||
continue;
|
continue;
|
||||||
@@ -633,7 +639,7 @@ static int common_exec(struct ast_channel *chan, const struct ast_flags *flags,
|
|||||||
peer = NULL;
|
peer = NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (res == -1)
|
if (res == -1 || ast_check_hangup(chan))
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user