mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-03 03:20:57 +00:00
bridge_channel_write_frame: Check for NULL channel
There is a possibility, when bridge_channel_write_frame() is called, that the bridge_channel->chan will be NULL. The first thing bridge_channel_write_frame() does though is call ast_channel_is_multistream() which had no check for a NULL channel and therefore caused a segfault. Since it's still possible for bridge_channel_write_frame() to write the frame to the other channels in the bridge, we don't want to bail before we call ast_channel_is_multistream() but we can just skip the multi-channel stuff. So... bridge_channel_write_frame() only calls ast_channel_is_multistream() if bridge_channel->chan is not NULL. As a safety measure, ast_channel_is_multistream() now returns false if the supplied channel is NULL. ASTERISK-29379 Reported-by: Vyrva Igor Reported-by: Ross Beer Change-Id: Idfe62dbea8c69813ecfd58e113a6620dc42352ce
This commit is contained in:
committed by
Joshua Colp
parent
5a13e95c56
commit
44aef0449a
@@ -1642,7 +1642,7 @@ void ast_channel_internal_swap_stream_topology(struct ast_channel *chan1,
|
||||
|
||||
int ast_channel_is_multistream(struct ast_channel *chan)
|
||||
{
|
||||
return (chan->tech && chan->tech->read_stream && chan->tech->write_stream);
|
||||
return (chan && chan->tech && chan->tech->read_stream && chan->tech->write_stream);
|
||||
}
|
||||
|
||||
struct ast_channel_snapshot *ast_channel_snapshot(const struct ast_channel *chan)
|
||||
|
Reference in New Issue
Block a user