Fix for Heap-use-after-free in webrtc::voe::Channel::SendRTCPPacket

Ensures that we always call DeRegisterExternalTransport() even if a fuzz test calls DeRegisterExternalTransport in an unintialized state.

TBR=tommi
BUG=296804 in crbug.com

Review URL: https://webrtc-codereview.appspot.com/2275008

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4827 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
henrika@webrtc.org 2013-09-24 15:42:49 +00:00
parent ebd3ab0ce1
commit 9b6eefcedf

View File

@ -71,8 +71,9 @@ int VoENetworkImpl::DeRegisterExternalTransport(int channel)
"DeRegisterExternalTransport(channel=%d)", channel);
if (!_shared->statistics().Initialized())
{
_shared->SetLastError(VE_NOT_INITED, kTraceError);
return -1;
WEBRTC_TRACE(kTraceError, kTraceVoice,
VoEId(_shared->instance_id(), -1),
"DeRegisterExternalTransport() - invalid state");
}
voe::ChannelOwner ch = _shared->channel_manager().GetChannel(channel);
voe::Channel* channelPtr = ch.channel();