summaryrefslogtreecommitdiff
path: root/services
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 /services
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)
Diffstat (limited to 'services')
-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) {