Fix an assert failure caused by race condition

BUG=
R=pbos@webrtc.org, pthatcher@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7938 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
guoweis@webrtc.org
2014-12-18 00:30:55 +00:00
parent 0ab42bc3f6
commit c51fb9348d

View File

@ -442,7 +442,17 @@ void TurnPort::OnReadPacket(
const rtc::SocketAddress& remote_addr,
const rtc::PacketTime& packet_time) {
ASSERT(socket == socket_);
ASSERT(remote_addr == server_address_.address);
// This is to guard against a STUN response from previous server after
// alternative server redirection. TODO(guoweis): add a unit test for this
// race condition.
if (remote_addr != server_address_.address) {
LOG_J(LS_WARNING, this) << "Discarding TURN message from unknown address:"
<< remote_addr.ToString()
<< ", server_address_:"
<< server_address_.address.ToString();
return;
}
// The message must be at least the size of a channel header.
if (size < TURN_CHANNEL_HEADER_SIZE) {