From ebfdc7c4e7f5e35403b83337ad212a3a1d3e6fdb Mon Sep 17 00:00:00 2001 From: Lorenzo Colitti Date: Mon, 24 Jun 2019 12:42:24 +0900 Subject: [PATCH] Synchronize the NetworkStatsFactory constructor. This ensures the constructor takes the necessary lock before accessing memmber variables. Bug: 113122541 Test: atest FrameworksNetTests Change-Id: Ibd324ed922c738b8d77d4eb74f45b75c6645bdc7 --- .../java/com/android/server/net/NetworkStatsFactory.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/net/NetworkStatsFactory.java b/services/core/java/com/android/server/net/NetworkStatsFactory.java index 7687718b06..9344ef71c9 100644 --- a/services/core/java/com/android/server/net/NetworkStatsFactory.java +++ b/services/core/java/com/android/server/net/NetworkStatsFactory.java @@ -179,8 +179,10 @@ public class NetworkStatsFactory { mStatsXtIfaceFmt = new File(procRoot, "net/xt_qtaguid/iface_stat_fmt"); mStatsXtUid = new File(procRoot, "net/xt_qtaguid/stats"); mUseBpfStats = useBpfStats; - mPersistSnapshot = new NetworkStats(SystemClock.elapsedRealtime(), -1); - mTunAnd464xlatAdjustedStats = new NetworkStats(SystemClock.elapsedRealtime(), -1); + synchronized (sPersistentDataLock) { + mPersistSnapshot = new NetworkStats(SystemClock.elapsedRealtime(), -1); + mTunAnd464xlatAdjustedStats = new NetworkStats(SystemClock.elapsedRealtime(), -1); + } } public NetworkStats readBpfNetworkStatsDev() throws IOException {