diff options
author | Raman Tenneti <rtenneti@chromium.org> | 2016-02-08 15:33:34 -0800 |
---|---|---|
committer | Raman Tenneti <rtenneti@chromium.org> | 2016-02-08 23:35:30 +0000 |
commit | 23c04ce2940249cb9171405f0defc6a0d00c0896 (patch) | |
tree | ad03fb5648e92c616d282091b8f432c66cfaf548 /net | |
parent | 451e75babdf5dcc1091c4cc60cfc12887830dd7b (diff) | |
download | chromium_src-23c04ce2940249cb9171405f0defc6a0d00c0896.zip chromium_src-23c04ce2940249cb9171405f0defc6a0d00c0896.tar.gz chromium_src-23c04ce2940249cb9171405f0defc6a0d00c0896.tar.bz2 |
QUIC - Fix for crash in stable channel. Check for null |visitor_| before
accessing it.
BUG=546668
TBR=rch@chromium.org, asvitkine@chromium.org
Review URL: https://codereview.chromium.org/1656673002
Cr-Commit-Position: refs/heads/master@{#372752}
(cherry picked from commit 3a731f0d7d50c4ec479f71ca3076a09576b44def)
Review URL: https://codereview.chromium.org/1679083002 .
Cr-Commit-Position: refs/branch-heads/2623@{#307}
Cr-Branched-From: 92d77538a86529ca35f9220bd3cd512cbea1f086-refs/heads/master@{#369907}
Diffstat (limited to 'net')
-rw-r--r-- | net/quic/quic_connection.cc | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/net/quic/quic_connection.cc b/net/quic/quic_connection.cc index df2efe4..75c761a 100644 --- a/net/quic/quic_connection.cc +++ b/net/quic/quic_connection.cc @@ -18,6 +18,7 @@ #include "base/logging.h" #include "base/macros.h" #include "base/memory/ref_counted.h" +#include "base/metrics/histogram_macros.h" #include "base/stl_util.h" #include "base/strings/stringprintf.h" #include "net/base/net_errors.h" @@ -2040,7 +2041,14 @@ void QuicConnection::CloseConnection(QuicErrorCode error, bool from_peer) { } connected_ = false; DCHECK(visitor_ != nullptr); - visitor_->OnConnectionClosed(error, from_peer); + // TODO(rtenneti): crbug.com/546668. A temporary fix. Added a check for null + // |visitor_| to fix crash bug. Delete |visitor_| check and histogram after + // fix is merged. + if (visitor_) { + visitor_->OnConnectionClosed(error, from_peer); + } else { + UMA_HISTOGRAM_BOOLEAN("Net.QuicCloseConnection.NullVisitor", true); + } if (debug_visitor_ != nullptr) { debug_visitor_->OnConnectionClosed(error, from_peer); } |