Prevent NPEs when registering/unregistering ConnDiags CBs.

This CL updates ConnectivityService to do null checks on received
parameters when registering and unregistering ConnectivityDiagnostics
callbacks (and also when simulating Data Stalls).

Bug: 181583568
Test: atest ConnectivityServiceTest ConnectivityDiagnosticsManagerTest
Change-Id: I7f297f10bf8d379a5d33ca5e11ca1e12132ba3a5
This commit is contained in:
Benedict Wong
2021-07-08 23:45:39 -07:00
parent 8890ead0e0
commit 30d3ba047e
2 changed files with 56 additions and 0 deletions

View File

@@ -9497,6 +9497,10 @@ public class ConnectivityService extends IConnectivityManager.Stub
@NonNull IConnectivityDiagnosticsCallback callback,
@NonNull NetworkRequest request,
@NonNull String callingPackageName) {
Objects.requireNonNull(callback, "callback must not be null");
Objects.requireNonNull(request, "request must not be null");
Objects.requireNonNull(callingPackageName, "callingPackageName must not be null");
if (request.legacyType != TYPE_NONE) {
throw new IllegalArgumentException("ConnectivityManager.TYPE_* are deprecated."
+ " Please use NetworkCapabilities instead.");
@@ -9545,6 +9549,9 @@ public class ConnectivityService extends IConnectivityManager.Stub
@Override
public void simulateDataStall(int detectionMethod, long timestampMillis,
@NonNull Network network, @NonNull PersistableBundle extras) {
Objects.requireNonNull(network, "network must not be null");
Objects.requireNonNull(extras, "extras must not be null");
enforceAnyPermissionOf(android.Manifest.permission.MANAGE_TEST_NETWORKS,
android.Manifest.permission.NETWORK_STACK);
final NetworkCapabilities nc = getNetworkCapabilitiesInternal(network);