summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorRaman Tenneti <rtenneti@chromium.org>2016-02-08 15:33:34 -0800
committerRaman Tenneti <rtenneti@chromium.org>2016-02-08 23:35:30 +0000
commit23c04ce2940249cb9171405f0defc6a0d00c0896 (patch)
treead03fb5648e92c616d282091b8f432c66cfaf548 /net
parent451e75babdf5dcc1091c4cc60cfc12887830dd7b (diff)
downloadchromium_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.cc10
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);
}