summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Sudheer Shanka <sudheersai@google.com> 2021-10-05 16:42:17 -0700
committer Sudheer Shanka <sudheersai@google.com> 2021-10-15 14:03:06 -0700
commit0ca63ddebda63e9e4c5de25b68e4bcb045f7ab4f (patch)
tree8955669ed812e588f39f705e2b3182af475540df
parent1465700c005e969e98f00870bc03715a389f51e5 (diff)
Fix an issue in NPMS blockedReasons computation logic.
If an app does not have the permission to access network in Restricted mode, we should be removing ALLOWED_REASON_RESTRICTED_MODE_PERMISSIONS from the uid's allowedReasons but right now, we end up removing all the allowedReasons except ALLOWED_REASON_RESTRICTED_MODE_PERMISSIONS and this could result in sending wrong network state to apps. Bug: 202213533 Test: atest tests/cts/hostside/src/com/android/cts/net/HostsideRestrictBackgroundNetworkTests.java Change-Id: Ibcae147bf4ba84ff91ef7038ffef8c33082b82ca Merged-In: Ibcae147bf4ba84ff91ef7038ffef8c33082b82ca (cherry picked from commit 259414efbc207e5e8c4299f39a3c48580e3221df)
-rw-r--r--services/core/java/com/android/server/net/NetworkPolicyManagerService.java2
1 files changed, 1 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java
index 84be7f5809e6..20687c6764db 100644
--- a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java
+++ b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java
@@ -4073,7 +4073,7 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
if (hasRestrictedModeAccess(uid)) {
uidBlockedState.allowedReasons |= ALLOWED_REASON_RESTRICTED_MODE_PERMISSIONS;
} else {
- uidBlockedState.allowedReasons &= ALLOWED_REASON_RESTRICTED_MODE_PERMISSIONS;
+ uidBlockedState.allowedReasons &= ~ALLOWED_REASON_RESTRICTED_MODE_PERMISSIONS;
}
uidBlockedState.updateEffectiveBlockedReasons();
if (oldEffectiveBlockedReasons != uidBlockedState.effectiveBlockedReasons) {