mirror of
https://github.com/asterisk/asterisk.git
synced 2026-06-20 22:41:30 +00:00
Fix segfault when dealing with chan_agent channels.
Check the returned bridged pointer for NULL to avoid a crash. It looks
like chan_agent is returning a NULL pointer when it probably should be
returning a pointer to the channel the Agent channel is pretending to be.
(closes issue ASTERISK-21793)
Reported by: Rodrigo P. Telles
Patches:
jira_asterisk_21793_v1.8.patch (license #5621) patch uploaded by rmudgett
Tested by: Rodrigo P. Telles
........
Merged revisions 390044 from http://svn.asterisk.org/svn/asterisk/branches/1.8
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/11@390047 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
+4
-4
@@ -6625,14 +6625,14 @@ void ast_channel_set_linkgroup(struct ast_channel *chan, struct ast_channel *pee
|
||||
linkedid = oldest_linkedid(linkedid, ast_channel_uniqueid(peer));
|
||||
if (ast_channel_internal_bridged_channel(chan)) {
|
||||
bridged = ast_bridged_channel(chan);
|
||||
if (bridged != peer) {
|
||||
if (bridged && bridged != peer) {
|
||||
linkedid = oldest_linkedid(linkedid, ast_channel_linkedid(bridged));
|
||||
linkedid = oldest_linkedid(linkedid, ast_channel_uniqueid(bridged));
|
||||
}
|
||||
}
|
||||
if (ast_channel_internal_bridged_channel(peer)) {
|
||||
bridged = ast_bridged_channel(peer);
|
||||
if (bridged != chan) {
|
||||
if (bridged && bridged != chan) {
|
||||
linkedid = oldest_linkedid(linkedid, ast_channel_linkedid(bridged));
|
||||
linkedid = oldest_linkedid(linkedid, ast_channel_uniqueid(bridged));
|
||||
}
|
||||
@@ -6645,13 +6645,13 @@ void ast_channel_set_linkgroup(struct ast_channel *chan, struct ast_channel *pee
|
||||
ast_channel_change_linkedid(peer, linkedid);
|
||||
if (ast_channel_internal_bridged_channel(chan)) {
|
||||
bridged = ast_bridged_channel(chan);
|
||||
if (bridged != peer) {
|
||||
if (bridged && bridged != peer) {
|
||||
ast_channel_change_linkedid(bridged, linkedid);
|
||||
}
|
||||
}
|
||||
if (ast_channel_internal_bridged_channel(peer)) {
|
||||
bridged = ast_bridged_channel(peer);
|
||||
if (bridged != chan) {
|
||||
if (bridged && bridged != chan) {
|
||||
ast_channel_change_linkedid(bridged, linkedid);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user