Commit dc383bd5 authored by Renjie Tang's avatar Renjie Tang Committed by Chromium LUCI CQ

Make sure QuicPathValidator is used before accessing it.

Currently this has no real impact because connection migration isn't enabled in IETF QUIC. But once we start experimentation, an explicit flag check will help us turn on/off the feature.

I'll follow up by adding DCEHCK in QuicConnection.

Bug: 1155306
Change-Id: I1794edb3c528bfa42910d88f394fd024f0f3021f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2641089
Commit-Queue: Renjie Tang <renjietang@chromium.org>
Commit-Queue: David Schinazi <dschinazi@chromium.org>
Auto-Submit: Renjie Tang <renjietang@chromium.org>
Reviewed-by: default avatarDavid Schinazi <dschinazi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#845412}
parent bdec94b5
...@@ -2467,7 +2467,7 @@ void QuicChromiumClientSession::OnProbeFailed( ...@@ -2467,7 +2467,7 @@ void QuicChromiumClientSession::OnProbeFailed(
/*is_success=*/false); /*is_success=*/false);
}); });
if (version().HasIetfQuicFrames()) { if (version().HasIetfQuicFrames() && connection()->use_path_validator()) {
auto* context = static_cast<QuicChromiumPathValidationContext*>( auto* context = static_cast<QuicChromiumPathValidationContext*>(
connection()->GetPathValidationContext()); connection()->GetPathValidationContext());
...@@ -2546,7 +2546,7 @@ void QuicChromiumClientSession::OnNetworkDisconnectedV2( ...@@ -2546,7 +2546,7 @@ void QuicChromiumClientSession::OnNetworkDisconnectedV2(
"disconnected_network", disconnected_network); "disconnected_network", disconnected_network);
// Stop probing the disconnected network if there is one. // Stop probing the disconnected network if there is one.
if (version().HasIetfQuicFrames()) { if (version().HasIetfQuicFrames() && connection()->use_path_validator()) {
auto* context = static_cast<QuicChromiumPathValidationContext*>( auto* context = static_cast<QuicChromiumPathValidationContext*>(
connection()->GetPathValidationContext()); connection()->GetPathValidationContext());
if (context && context->network() == disconnected_network && if (context && context->network() == disconnected_network &&
...@@ -2672,7 +2672,7 @@ void QuicChromiumClientSession::MigrateNetworkImmediately( ...@@ -2672,7 +2672,7 @@ void QuicChromiumClientSession::MigrateNetworkImmediately(
} }
// Cancel probing on |network| if there is any. // Cancel probing on |network| if there is any.
if (version().HasIetfQuicFrames()) { if (version().HasIetfQuicFrames() && connection()->use_path_validator()) {
auto* context = static_cast<QuicChromiumPathValidationContext*>( auto* context = static_cast<QuicChromiumPathValidationContext*>(
connection()->GetPathValidationContext()); connection()->GetPathValidationContext());
if (context && context->network() == network && if (context && context->network() == network &&
...@@ -3017,7 +3017,7 @@ ProbingResult QuicChromiumClientSession::StartProbing( ...@@ -3017,7 +3017,7 @@ ProbingResult QuicChromiumClientSession::StartProbing(
NetworkChangeNotifier::NetworkHandle network, NetworkChangeNotifier::NetworkHandle network,
const quic::QuicSocketAddress& peer_address) { const quic::QuicSocketAddress& peer_address) {
// Check if probing manager is probing the same path. // Check if probing manager is probing the same path.
if (version().HasIetfQuicFrames()) { if (version().HasIetfQuicFrames() && connection()->use_path_validator()) {
auto* context = static_cast<QuicChromiumPathValidationContext*>( auto* context = static_cast<QuicChromiumPathValidationContext*>(
connection()->GetPathValidationContext()); connection()->GetPathValidationContext());
if (context && context->network() == network && if (context && context->network() == network &&
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment