DO NOT MERGE
Move accountname and typeName length check from Account.java to AccountManagerService. Bug: 169762606 Test: atest AccountManagerServiceTest Change-Id: I80fabf3a64c55837db98ff316e7e5420129c001b
This commit is contained in:
@@ -30,7 +30,6 @@ import android.util.Log;
|
|||||||
|
|
||||||
import com.android.internal.annotations.GuardedBy;
|
import com.android.internal.annotations.GuardedBy;
|
||||||
|
|
||||||
import java.util.Objects;
|
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -86,12 +85,6 @@ public class Account implements Parcelable {
|
|||||||
if (TextUtils.isEmpty(type)) {
|
if (TextUtils.isEmpty(type)) {
|
||||||
throw new IllegalArgumentException("the type must not be empty: " + 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.name = name;
|
||||||
this.type = type;
|
this.type = type;
|
||||||
this.accessId = accessId;
|
this.accessId = accessId;
|
||||||
|
|||||||
@@ -1774,6 +1774,14 @@ public class AccountManagerService
|
|||||||
if (account == null) {
|
if (account == null) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
if (account.name != null && account.name.length() > 200) {
|
||||||
|
Log.w(TAG, "Account cannot be added - Name longer than 200 chars");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (account.type != null && account.type.length() > 200) {
|
||||||
|
Log.w(TAG, "Account cannot be added - Name longer than 200 chars");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
if (!isLocalUnlockedUser(accounts.userId)) {
|
if (!isLocalUnlockedUser(accounts.userId)) {
|
||||||
Log.w(TAG, "Account " + account.toSafeString() + " cannot be added - user "
|
Log.w(TAG, "Account " + account.toSafeString() + " cannot be added - user "
|
||||||
+ accounts.userId + " is locked. callingUid=" + callingUid);
|
+ accounts.userId + " is locked. callingUid=" + callingUid);
|
||||||
@@ -1967,6 +1975,10 @@ public class AccountManagerService
|
|||||||
+ ", pid " + Binder.getCallingPid());
|
+ ", pid " + Binder.getCallingPid());
|
||||||
}
|
}
|
||||||
if (accountToRename == null) throw new IllegalArgumentException("account is null");
|
if (accountToRename == null) throw new IllegalArgumentException("account is null");
|
||||||
|
if (newName != null && newName.length() > 200) {
|
||||||
|
Log.e(TAG, "renameAccount failed - account name longer than 200");
|
||||||
|
throw new IllegalArgumentException("account name longer than 200");
|
||||||
|
}
|
||||||
int userId = UserHandle.getCallingUserId();
|
int userId = UserHandle.getCallingUserId();
|
||||||
if (!isAccountManagedByCaller(accountToRename.type, callingUid, userId)) {
|
if (!isAccountManagedByCaller(accountToRename.type, callingUid, userId)) {
|
||||||
String msg = String.format(
|
String msg = String.format(
|
||||||
|
|||||||
@@ -240,6 +240,25 @@ public class AccountManagerServiceTest extends AndroidTestCase {
|
|||||||
assertEquals(a31, accounts[1]);
|
assertEquals(a31, accounts[1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SmallTest
|
||||||
|
public void testCheckAddAccountLongName() throws Exception {
|
||||||
|
unlockSystemUser();
|
||||||
|
String longString = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
|
||||||
|
+ "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
|
||||||
|
+ "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
|
||||||
|
+ "aaaaa";
|
||||||
|
Account a11 = new Account(longString, AccountManagerServiceTestFixtures.ACCOUNT_TYPE_1);
|
||||||
|
|
||||||
|
mAms.addAccountExplicitly(a11, /* password= */ "p11", /* extras= */ null);
|
||||||
|
|
||||||
|
String[] list = new String[]{AccountManagerServiceTestFixtures.CALLER_PACKAGE};
|
||||||
|
when(mMockPackageManager.getPackagesForUid(anyInt())).thenReturn(list);
|
||||||
|
Account[] accounts = mAms.getAccountsAsUser(null,
|
||||||
|
UserHandle.getCallingUserId(), mContext.getOpPackageName());
|
||||||
|
assertEquals(0, accounts.length);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@SmallTest
|
@SmallTest
|
||||||
public void testPasswords() throws Exception {
|
public void testPasswords() throws Exception {
|
||||||
unlockSystemUser();
|
unlockSystemUser();
|
||||||
|
|||||||
Reference in New Issue
Block a user