From 6a16a415d95529c2f09f93642647070f748a10e7 Mon Sep 17 00:00:00 2001 From: Aaron Huang Date: Fri, 9 Apr 2021 12:06:42 +0800 Subject: [PATCH] Handle null pointer cases in ConnectivityService If a method is called by adb command "service call" with no parameters. It will cause to crash because of a null object reference. Add a null check for them to avoid system server crash. Bug: 172885426 Test: FrameworksNetTest adb shell service call connectivity # Change-Id: I8748fc5c6a7a6e82db3581e3026a3f75909a357e --- services/core/java/com/android/server/ConnectivityService.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java index efb376863c..b5aebb1112 100644 --- a/services/core/java/com/android/server/ConnectivityService.java +++ b/services/core/java/com/android/server/ConnectivityService.java @@ -6142,6 +6142,7 @@ public class ConnectivityService extends IConnectivityManager.Stub @Override public int registerNetworkProvider(Messenger messenger, String name) { enforceNetworkFactoryOrSettingsPermission(); + Objects.requireNonNull(messenger, "messenger must be non-null"); NetworkProviderInfo npi = new NetworkProviderInfo(name, messenger, nextNetworkProviderId(), () -> unregisterNetworkProvider(messenger)); mHandler.sendMessage(mHandler.obtainMessage(EVENT_REGISTER_NETWORK_PROVIDER, npi)); @@ -9074,6 +9075,7 @@ public class ConnectivityService extends IConnectivityManager.Stub @Override public void unregisterConnectivityDiagnosticsCallback( @NonNull IConnectivityDiagnosticsCallback callback) { + Objects.requireNonNull(callback, "callback must be non-null"); mConnectivityDiagnosticsHandler.sendMessage( mConnectivityDiagnosticsHandler.obtainMessage( ConnectivityDiagnosticsHandler @@ -9444,6 +9446,7 @@ public class ConnectivityService extends IConnectivityManager.Stub */ @Override public void unregisterQosCallback(@NonNull final IQosCallback callback) { + Objects.requireNonNull(callback, "callback must be non-null"); mQosCallbackTracker.unregisterCallback(callback); }