From 22fc59ad6f343f0a640b780490330fda3d38cc70 Mon Sep 17 00:00:00 2001 From: Robert Horvath Date: Thu, 10 Feb 2022 16:48:08 +0100 Subject: [PATCH] Annotate setUidFirewallRule with @GuardedBy This method is only called with the lock held. Annotating it helps ErrorProne verify calls to other methods that require the lock to be held are okay. Test: Build Bug: 220270435 Change-Id: I1f6c3c9e339935c06b3edd5436b2b1a7922a67ed --- .../net/NetworkPolicyManagerService.java | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java index 0052df37eaf75..60962b122fe7a 100644 --- a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java +++ b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java @@ -4157,7 +4157,7 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { if (mRestrictedNetworkingMode) { // Note: setUidFirewallRule also updates mUidFirewallRestrictedModeRules. // In this case, default firewall rules can also be added. - setUidFirewallRule(FIREWALL_CHAIN_RESTRICTED, uid, + setUidFirewallRuleUL(FIREWALL_CHAIN_RESTRICTED, uid, getRestrictedModeFirewallRule(uidBlockedState)); } } @@ -4321,10 +4321,10 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { && (uidBlockedState.effectiveBlockedReasons & BLOCKED_REASON_LOW_POWER_STANDBY) == 0) { mUidFirewallLowPowerStandbyModeRules.put(uid, FIREWALL_RULE_ALLOW); - setUidFirewallRule(FIREWALL_CHAIN_LOW_POWER_STANDBY, uid, FIREWALL_RULE_ALLOW); + setUidFirewallRuleUL(FIREWALL_CHAIN_LOW_POWER_STANDBY, uid, FIREWALL_RULE_ALLOW); } else { mUidFirewallLowPowerStandbyModeRules.delete(uid); - setUidFirewallRule(FIREWALL_CHAIN_LOW_POWER_STANDBY, uid, FIREWALL_RULE_DEFAULT); + setUidFirewallRuleUL(FIREWALL_CHAIN_LOW_POWER_STANDBY, uid, FIREWALL_RULE_DEFAULT); } } @@ -4373,9 +4373,9 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { final boolean isWhitelisted = isWhitelistedFromPowerSaveUL(uid, chain == FIREWALL_CHAIN_DOZABLE); if (isWhitelisted || isUidForegroundOnRestrictPowerUL(uid)) { - setUidFirewallRule(chain, uid, FIREWALL_RULE_ALLOW); + setUidFirewallRuleUL(chain, uid, FIREWALL_RULE_ALLOW); } else { - setUidFirewallRule(chain, uid, FIREWALL_RULE_DEFAULT); + setUidFirewallRuleUL(chain, uid, FIREWALL_RULE_DEFAULT); } } } @@ -4421,10 +4421,10 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { int appId = UserHandle.getAppId(uid); if (!mPowerSaveTempWhitelistAppIds.get(appId) && isUidIdle(uid) && !isUidForegroundOnRestrictPowerUL(uid)) { - setUidFirewallRule(FIREWALL_CHAIN_STANDBY, uid, FIREWALL_RULE_DENY); + setUidFirewallRuleUL(FIREWALL_CHAIN_STANDBY, uid, FIREWALL_RULE_DENY); if (LOGD) Log.d(TAG, "updateRuleForAppIdleUL DENY " + uid); } else { - setUidFirewallRule(FIREWALL_CHAIN_STANDBY, uid, FIREWALL_RULE_DEFAULT); + setUidFirewallRuleUL(FIREWALL_CHAIN_STANDBY, uid, FIREWALL_RULE_DEFAULT); if (LOGD) Log.d(TAG, "updateRuleForAppIdleUL " + uid + " to DEFAULT"); } } finally { @@ -5495,10 +5495,11 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { /** * Add or remove a uid to the firewall denylist for all network ifaces. */ - private void setUidFirewallRule(int chain, int uid, int rule) { + @GuardedBy("mUidRulesFirstLock") + private void setUidFirewallRuleUL(int chain, int uid, int rule) { if (Trace.isTagEnabled(Trace.TRACE_TAG_NETWORK)) { Trace.traceBegin(Trace.TRACE_TAG_NETWORK, - "setUidFirewallRule: " + chain + "/" + uid + "/" + rule); + "setUidFirewallRuleUL: " + chain + "/" + uid + "/" + rule); } try { if (chain == FIREWALL_CHAIN_DOZABLE) {