summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author lucaslin <lucaslin@google.com> 2021-03-15 10:57:51 +0800
committer Lucas Lin <lucaslin@google.com> 2021-03-15 03:29:29 +0000
commit935fef65fb02e469916912a6d821a0fe4a50637f (patch)
treed6a20a561d73d474f08d04bbddc2dee5c8648a8a
parentfe4b43da67341b6a5fc6ee6f0e03b0b3b9f78772 (diff)
Call clearCallingIdentity when calling registerNetworkProvider in TNS
The caller to create a TestNetworkService via ConnectivityManager#startOrGetTestNetworkManager should have passed the MANAGE_TEST_NETWORKS permission check and the caller doesn't need to declare the permission to pass the permission check of registerNetworkProvider. So call clearCallingIdentity when calling registerNetworkProvider in TestNetworkService. Bug: 181573283 Test: atest CtsNetTestCases:ConnectivityManagerTest#testRequestBackgroundNetwork Change-Id: Ia28627dacf933d1937978ed9709b975c9a4660ce
-rw-r--r--services/core/java/com/android/server/TestNetworkService.java7
1 files changed, 6 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/TestNetworkService.java b/services/core/java/com/android/server/TestNetworkService.java
index ee610671ff23..f5662772f59f 100644
--- a/services/core/java/com/android/server/TestNetworkService.java
+++ b/services/core/java/com/android/server/TestNetworkService.java
@@ -90,7 +90,12 @@ class TestNetworkService extends ITestNetworkManager.Stub {
mCm = mContext.getSystemService(ConnectivityManager.class);
mNetworkProvider = new NetworkProvider(mContext, mHandler.getLooper(),
TEST_NETWORK_PROVIDER_NAME);
- mCm.registerNetworkProvider(mNetworkProvider);
+ final long token = Binder.clearCallingIdentity();
+ try {
+ mCm.registerNetworkProvider(mNetworkProvider);
+ } finally {
+ Binder.restoreCallingIdentity(token);
+ }
}
/**