Check if NetworkSpecifier is an instance of MatchAllNetworkSpecifier

To prevent mainline module related file to access a hidden API,
check whether the NetworkSpecifier is an instance of
MatchAllNetworkSpecifier by itself.

Bug: 172183305
Test: atest FrameworksNetTests
Change-Id: I4d49cb70ff3c8a7e1ffa32e38207c74a6375e51a
This commit is contained in:
lucaslin
2021-01-22 15:15:23 +08:00
parent b746bc77c2
commit 22f9b9f64b
2 changed files with 6 additions and 2 deletions

View File

@@ -353,7 +353,9 @@ public class NetworkRequest implements Parcelable {
* NetworkSpecifier.
*/
public Builder setNetworkSpecifier(NetworkSpecifier networkSpecifier) {
MatchAllNetworkSpecifier.checkNotMatchAllNetworkSpecifier(networkSpecifier);
if (networkSpecifier instanceof MatchAllNetworkSpecifier) {
throw new IllegalArgumentException("A MatchAllNetworkSpecifier is not permitted");
}
mNetworkCapabilities.setNetworkSpecifier(networkSpecifier);
return this;
}

View File

@@ -5580,7 +5580,9 @@ public class ConnectivityService extends IConnectivityManager.Stub
if (ns == null) {
return;
}
MatchAllNetworkSpecifier.checkNotMatchAllNetworkSpecifier(ns);
if (ns instanceof MatchAllNetworkSpecifier) {
throw new IllegalArgumentException("A MatchAllNetworkSpecifier is not permitted");
}
}
private void ensureValid(NetworkCapabilities nc) {