OSDN Git Service

Fix NPE in NetworkMetrics
authorHugo Benichi <hugobenichi@google.com>
Fri, 23 Feb 2018 23:01:30 +0000 (08:01 +0900)
committerHugo Benichi <hugobenichi@google.com>
Fri, 23 Feb 2018 23:01:30 +0000 (08:01 +0900)
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

index 2425bba..66d92c4 100644 (file)
@@ -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);