Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 628f13df authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Move accountname and typeName length check from Account.java to...

Merge "Move accountname and typeName length check from Account.java to AccountManagerService." into tm-dev
parents 86fe3017 cf62c760
Loading
Loading
Loading
Loading
+0 −7
Original line number Original line Diff line number Diff line
@@ -31,7 +31,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;


/**
/**
@@ -87,12 +86,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;
+12 −0
Original line number Original line Diff line number Diff line
@@ -1820,6 +1820,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);
@@ -2065,6 +2073,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(
+21 −0
Original line number Original line Diff line number Diff line
@@ -39,6 +39,7 @@ import android.accounts.IAccountManagerResponse;
import android.app.AppOpsManager;
import android.app.AppOpsManager;
import android.app.PropertyInvalidatedCache;
import android.app.PropertyInvalidatedCache;
import android.app.INotificationManager;
import android.app.INotificationManager;
import android.app.PropertyInvalidatedCache;
import android.app.admin.DevicePolicyManager;
import android.app.admin.DevicePolicyManager;
import android.app.admin.DevicePolicyManagerInternal;
import android.app.admin.DevicePolicyManagerInternal;
import android.content.BroadcastReceiver;
import android.content.BroadcastReceiver;
@@ -252,6 +253,26 @@ 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, /* callerPackage= */ 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();