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

Commit 73b273d7 authored by YK Hung's avatar YK Hung Committed by Android (Google) Code Review
Browse files

Merge "Add a protection for the null UID corner case" into main

parents 44f29674 15e853a1
Loading
Loading
Loading
Loading
+8 −3
Original line number Diff line number Diff line
@@ -37,13 +37,14 @@ import java.util.List;
import java.util.Set;

/** A class to dynamically manage per apps {@link NetworkPolicyManager} POLICY_ flags. */
public final class DynamicDenylistManager {
public class DynamicDenylistManager {

    private static final String TAG = "DynamicDenylistManager";
    private static final String PREF_KEY_MANUAL_DENY = "manual_denylist_preference";
    private static final String PREF_KEY_DYNAMIC_DENY = "dynamic_denylist_preference";

    private static DynamicDenylistManager sInstance;
    @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
    public static DynamicDenylistManager sInstance = null;

    private final Context mContext;
    private final NetworkPolicyManager mNetworkPolicyManager;
@@ -115,7 +116,11 @@ public final class DynamicDenylistManager {
        final ArraySet<Integer> failedUids = new ArraySet<>();
        synchronized (mLock) {
            // Set new added UIDs into REJECT policy.
            for (int uid : denylistTargetUids) {
            for (Integer uidInteger : denylistTargetUids) {
                if (uidInteger == null) {
                    continue;
                }
                final int uid = uidInteger.intValue();
                if (!lastDynamicDenylistUids.contains(uid)) {
                    try {
                        mNetworkPolicyManager.setUidPolicy(uid, POLICY_REJECT_METERED_BACKGROUND);
+4 −1
Original line number Diff line number Diff line
@@ -177,8 +177,11 @@ public class DynamicDenylistManagerTest {
    @Test
    public void setDenylist_uidDeniedAlready_doNothing() {
        initDynamicDenylistManager(new int[] {FAKE_UID_1_INT});
        final ArraySet uids = new ArraySet<>();
        uids.add(FAKE_UID_1_INT);
        uids.add(null);

        setDenylist(new ArraySet<>(List.of(FAKE_UID_1_INT)));
        setDenylist(uids);

        verify(mNetworkPolicyManager, never()).setUidPolicy(anyInt(), anyInt());
    }