diff options
author | TreeHugger Robot <treehugger-gerrit@google.com> | 2021-09-01 00:34:01 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2021-09-01 00:34:01 +0000 |
commit | b65ac540d2e30930db0b468707c4d1e0d58072d7 (patch) | |
tree | 1163a139a3aaa534c3856b7fe6e0a732efcc9706 | |
parent | d95a81b72059f49bcd6f392e2e44588d10d7aba2 (diff) | |
parent | a0226b4d47787307a79759e471b9727cdd06ba05 (diff) | |
download | base-b65ac540d2e30930db0b468707c4d1e0d58072d7.tar.gz |
Merge "Prevent apps from spamming addAccountExplicitly. See comment here for the discussion on solution https://b.corp.google.com/issues/169762606#comment14" into pi-dev am: a0226b4d47
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15405290
Change-Id: I0073721ed49e40043625eae71f37e7e95b987340
-rw-r--r-- | core/java/android/accounts/Account.java | 7 | ||||
-rw-r--r-- | services/core/java/com/android/server/accounts/AccountManagerService.java | 5 |
2 files changed, 12 insertions, 0 deletions
diff --git a/core/java/android/accounts/Account.java b/core/java/android/accounts/Account.java index c822d20445ec..15b70b405823 100644 --- a/core/java/android/accounts/Account.java +++ b/core/java/android/accounts/Account.java @@ -30,6 +30,7 @@ import android.util.Log; import com.android.internal.annotations.GuardedBy; +import java.util.Objects; import java.util.Set; /** @@ -85,6 +86,12 @@ public class Account implements Parcelable { if (TextUtils.isEmpty(type)) { throw new IllegalArgumentException("the type must not be empty: " + type); } + if (name.length() > 200) { + throw new IllegalArgumentException("account name is longer than 200 characters"); + } + if (type.length() > 200) { + throw new IllegalArgumentException("account type is longer than 200 characters"); + } this.name = name; this.type = type; this.accessId = accessId; diff --git a/services/core/java/com/android/server/accounts/AccountManagerService.java b/services/core/java/com/android/server/accounts/AccountManagerService.java index 3ee1b65b2ebb..ea378e06df77 100644 --- a/services/core/java/com/android/server/accounts/AccountManagerService.java +++ b/services/core/java/com/android/server/accounts/AccountManagerService.java @@ -1787,6 +1787,11 @@ public class AccountManagerService + ", skipping since the account already exists"); return false; } + if (accounts.accountsDb.findAllDeAccounts().size() > 100) { + Log.w(TAG, "insertAccountIntoDatabase: " + account + + ", skipping since more than 50 accounts on device exist"); + return false; + } long accountId = accounts.accountsDb.insertCeAccount(account, password); if (accountId < 0) { Log.w(TAG, "insertAccountIntoDatabase: " + account.toSafeString() |