From 190c7017fa49ccae4b5a8a958676466a95d738cb Mon Sep 17 00:00:00 2001 From: Varun Shah Date: Fri, 10 May 2019 17:16:52 -0700 Subject: [PATCH] Fix NPE in SyncManager when updating accounts. On receiving MESSAGE_ACCOUNTS_UPDATED, do not try to sync accounts when users are removed or stopped (when userId is null). Bug: 132369930 Test: manual (steps listed on bug) Change-Id: Ic9f8917e93d5e31a477b86e36d3e82b784657478 --- .../com/android/server/content/SyncManager.java | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/services/core/java/com/android/server/content/SyncManager.java b/services/core/java/com/android/server/content/SyncManager.java index 7e79a12d12ebb..d8b7c2eb5d4cf 100644 --- a/services/core/java/com/android/server/content/SyncManager.java +++ b/services/core/java/com/android/server/content/SyncManager.java @@ -3256,14 +3256,17 @@ public class SyncManager { } } - // On account add, check if there are any settings to be restored. - for (AccountAndUser aau : mRunningAccounts) { - if (!containsAccountAndUser(oldAccounts, aau.account, aau.userId)) { - if (Log.isLoggable(TAG, Log.DEBUG)) { - Log.d(TAG, "Account " + aau.account + " added, checking sync restore data"); + if (syncTargets != null) { + // On account add, check if there are any settings to be restored. + for (AccountAndUser aau : mRunningAccounts) { + if (!containsAccountAndUser(oldAccounts, aau.account, aau.userId)) { + if (Log.isLoggable(TAG, Log.DEBUG)) { + Log.d(TAG, "Account " + aau.account + + " added, checking sync restore data"); + } + AccountSyncSettingsBackupHelper.accountAdded(mContext, syncTargets.userId); + break; } - AccountSyncSettingsBackupHelper.accountAdded(mContext, syncTargets.userId); - break; } }