diff options
author | henrika@webrtc.org <henrika@webrtc.org@4adac7df-926f-26a2-2b94-8c16560cd09d> | 2013-09-24 15:42:49 +0000 |
---|---|---|
committer | henrika@webrtc.org <henrika@webrtc.org@4adac7df-926f-26a2-2b94-8c16560cd09d> | 2013-09-24 15:42:49 +0000 |
commit | 8da2f653997d348799b6d28f00a3ff0dc2a03476 (patch) | |
tree | 74def5e7c70d01f8f423fba482553437e8cc067a /voice_engine/voe_network_impl.cc | |
parent | 3bd659f1040420b7ca90d0e7df368b083148d0e5 (diff) | |
download | webrtc-8da2f653997d348799b6d28f00a3ff0dc2a03476.tar.gz |
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/webrtc@4827 4adac7df-926f-26a2-2b94-8c16560cd09d
Diffstat (limited to 'voice_engine/voe_network_impl.cc')
-rw-r--r-- | voice_engine/voe_network_impl.cc | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/voice_engine/voe_network_impl.cc b/voice_engine/voe_network_impl.cc index 0f4d5c28..d6651a5b 100644 --- a/voice_engine/voe_network_impl.cc +++ b/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(); |