summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Ryuki Nakamura <ryuki.x.nakamura@sonymobile.com> 2017-03-01 10:40:36 +0900
committer Shunta Sato <Shunta.Sato@sonymobile.com> 2017-03-07 07:12:51 +0000
commita47b0c97a2aa21cff8c9f87eb9ccef68ed54d67c (patch)
tree4a3e4cbf70b3af07c8ee873555567717865a8261
parent9324d6513bdc333cc2a05a8f33ba120a322fd566 (diff)
Fix NPE while performing NetworkStatsService.removeUidsLocked()
Symptom: NPE occurred while performing NetworkStatsService.removeUidsLocked(). Root cause: NetworkStatsService refers to mUidRecorder at NetworkStatsService.removeUidsLocked() when mUserReceiver received Intent.ACTION_USER_REMOVED. However NetworkStatsService sets mUidRecorder to null without unregistering mUserReceiver when mShutdownReceiver received Intent.ACTION_SHUTDOWN. Therefore NPE occurred when mUserReceiver received Intent.ACTION_USER_REMOVED after mShutdownReceiver received Intent.ACTION_SHUTDOWN. Solution: Unregister mUserReceiver before setting mUidRecorder to null when mShutdownReceiver received Intent.ACTION_SHUTDOWN. Bug: 36015339 Change-Id: I9279e4c6ae07d94e7ec519c40b2d973c84d8fef1
-rw-r--r--services/core/java/com/android/server/net/NetworkStatsService.java1
1 files changed, 1 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/net/NetworkStatsService.java b/services/core/java/com/android/server/net/NetworkStatsService.java
index 4658c0463f0e..060dd73d11c8 100644
--- a/services/core/java/com/android/server/net/NetworkStatsService.java
+++ b/services/core/java/com/android/server/net/NetworkStatsService.java
@@ -381,6 +381,7 @@ public class NetworkStatsService extends INetworkStatsService.Stub {
mContext.unregisterReceiver(mTetherReceiver);
mContext.unregisterReceiver(mPollReceiver);
mContext.unregisterReceiver(mRemovedReceiver);
+ mContext.unregisterReceiver(mUserReceiver);
mContext.unregisterReceiver(mShutdownReceiver);
final long currentTime = mTime.hasCache() ? mTime.currentTimeMillis()