From e73486bf2458770b71f1dd1a6862e87b2875bd52 Mon Sep 17 00:00:00 2001 From: Hugo Benichi Date: Sat, 24 Feb 2018 08:01:30 +0900 Subject: [PATCH] Fix NPE in NetworkMetrics addTcpStatsResult() in NetworkMetrics was not checking for the nullness of the pendingSummary object and trying to add stats regardless. This patch fixes addTcpStatsResult() so that it populates pendingSummary if necessary, similarly to addConnectResult() and addDnsResult() Bug: 73825228 Test: runtest frameworks-net Change-Id: I616a4be0e6e5920bd2f5c58292fea769bd516df7 --- core/java/android/net/metrics/NetworkMetrics.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/core/java/android/net/metrics/NetworkMetrics.java b/core/java/android/net/metrics/NetworkMetrics.java index 2425bba9e6683..66d92c48087c8 100644 --- a/core/java/android/net/metrics/NetworkMetrics.java +++ b/core/java/android/net/metrics/NetworkMetrics.java @@ -98,6 +98,9 @@ public class NetworkMetrics { /** Accumulate a single netd sock_diag poll result reported by netd. */ public void addTcpStatsResult(int sent, int lost, int rttUs, int sentAckDiffMs) { + if (pendingSummary == null) { + pendingSummary = new Summary(netId, transports); + } pendingSummary.tcpLossRate.count(lost, sent); pendingSummary.roundTripTimeUs.count(rttUs); pendingSummary.sentAckTimeDiffenceMs.count(sentAckDiffMs);