From 22f9b9f64b36b52e805b843427d75012b59daeaa Mon Sep 17 00:00:00 2001 From: lucaslin Date: Fri, 22 Jan 2021 15:15:23 +0800 Subject: [PATCH] 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 --- core/java/android/net/NetworkRequest.java | 4 +++- .../core/java/com/android/server/ConnectivityService.java | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/core/java/android/net/NetworkRequest.java b/core/java/android/net/NetworkRequest.java index f0c637c76e..04011fc681 100644 --- a/core/java/android/net/NetworkRequest.java +++ b/core/java/android/net/NetworkRequest.java @@ -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; } diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java index 9aadcf837e..45ce868444 100644 --- a/services/core/java/com/android/server/ConnectivityService.java +++ b/services/core/java/com/android/server/ConnectivityService.java @@ -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) {