From 9b6eefcedf3603c9c7b1bd424653ae0a08c1a9f4 Mon Sep 17 00:00:00 2001 From: "henrika@webrtc.org" Date: Tue, 24 Sep 2013 15:42:49 +0000 Subject: [PATCH] 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 --- webrtc/voice_engine/voe_network_impl.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/webrtc/voice_engine/voe_network_impl.cc b/webrtc/voice_engine/voe_network_impl.cc index 0f4d5c2826..d6651a5b80 100644 --- a/webrtc/voice_engine/voe_network_impl.cc +++ b/webrtc/voice_engine/voe_network_impl.cc @@ -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();