Return null when user is locked
In getUserData, peekAuthToken return null instead of crashing when a user is
locked. As per JavaDoc authenticators are expected to handle null return values.
Bug: 28217043
Change-Id: I06d5a2965fe685cad21215958d5d94f413f77677
diff --git a/services/core/java/com/android/server/accounts/AccountManagerService.java b/services/core/java/com/android/server/accounts/AccountManagerService.java
index 4791818..49cf834 100644
--- a/services/core/java/com/android/server/accounts/AccountManagerService.java
+++ b/services/core/java/com/android/server/accounts/AccountManagerService.java
@@ -828,6 +828,10 @@
account.type);
throw new SecurityException(msg);
}
+ if (!isUserUnlocked(userId)) {
+ Log.w(TAG, "User " + userId + " data is locked. callingUid " + callingUid);
+ return null;
+ }
long identityToken = clearCallingIdentity();
try {
UserAccounts accounts = getUserAccounts(userId);
@@ -1788,6 +1792,11 @@
account.type);
throw new SecurityException(msg);
}
+ if (!isUserUnlocked(userId)) {
+ Log.w(TAG, "Authtoken not available - user " + userId + " data is locked. callingUid "
+ + callingUid);
+ return null;
+ }
long identityToken = clearCallingIdentity();
try {
UserAccounts accounts = getUserAccounts(userId);