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:
@ -442,7 +442,17 @@ void TurnPort::OnReadPacket(
|
|||||||
const rtc::SocketAddress& remote_addr,
|
const rtc::SocketAddress& remote_addr,
|
||||||
const rtc::PacketTime& packet_time) {
|
const rtc::PacketTime& packet_time) {
|
||||||
ASSERT(socket == socket_);
|
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.
|
// The message must be at least the size of a channel header.
|
||||||
if (size < TURN_CHANNEL_HEADER_SIZE) {
|
if (size < TURN_CHANNEL_HEADER_SIZE) {
|
||||||
|
Reference in New Issue
Block a user