Fix NPE in DynamicDenylistManager

Bug: 357280604
Change-Id: Ifcfe5cfea67f3ef692a865ef43db8e22de3cd68d
Test: atest DynamicDenylistManagerTest
Flag: EXEMPT for bug fix
This commit is contained in:
Wesley Wang
2024-08-09 10:04:11 +00:00
parent a65576cb0b
commit 77ded32a49

View File

@@ -78,6 +78,11 @@ public class DynamicDenylistManager {
return;
}
if (mNetworkPolicyManager == null) {
Log.w(TAG, "syncPolicyIfNeeded: invalid mNetworkPolicyManager");
return;
}
final SharedPreferences.Editor editor = getManualDenylistPref().edit();
final int[] existedUids = mNetworkPolicyManager
.getUidsWithPolicy(POLICY_REJECT_METERED_BACKGROUND);
@@ -91,6 +96,11 @@ public class DynamicDenylistManager {
/** Set policy flags for specific UID. */
public void setUidPolicyLocked(int uid, int policy) {
if (mNetworkPolicyManager == null) {
Log.w(TAG, "setUidPolicyLocked: invalid mNetworkPolicyManager");
return;
}
Log.i(TAG, "setUidPolicyLocked: uid=" + uid + " policy=" + policy);
synchronized (mLock) {
mNetworkPolicyManager.setUidPolicy(uid, policy);
@@ -100,7 +110,7 @@ public class DynamicDenylistManager {
/** Suggest a list of package to set as POLICY_REJECT. */
public void setDenylist(Set<Integer> denylistTargetUids) {
if (denylistTargetUids == null) {
if (denylistTargetUids == null || mNetworkPolicyManager == null) {
return;
}
final Set<Integer> manualDenylistUids = getDenylistAllUids(getManualDenylistPref());
@@ -164,6 +174,12 @@ public class DynamicDenylistManager {
Log.w(TAG, "resetDenylistIfNeeded: invalid conditions");
return;
}
if (mNetworkPolicyManager == null) {
Log.w(TAG, "setUidPolicyLocked: invalid mNetworkPolicyManager");
return;
}
synchronized (mLock) {
final int[] uids = mNetworkPolicyManager
.getUidsWithPolicy(POLICY_REJECT_METERED_BACKGROUND);