summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChiachang Wang <chiachangwang@google.com>2021-08-20 10:42:52 +0800
committerChiachang Wang <chiachangwang@google.com>2021-08-20 03:40:29 +0000
commit19b7709da6d2adc3c70132877ca835f5495c4067 (patch)
treeaa8a3efdef702e318a220aa517e5925a136a72f7
parentd060c52f58b343470805ee551a51d5406ab7fa24 (diff)
downloadethernet-19b7709da6d2adc3c70132877ca835f5495c4067.tar.gz
Add null check for the taken callback
The requestTetheredInterface() and releaseTetheredInterface() in EthernetManager is annotated as @NonNull. Basically, the taken callback parameter to the service implementation should also be @NonNull. However, it still possible to use native commands to call the method in the aidl. If a null callback is taken, it may cause unexpected results and cause crashes. Add a null check and throw NPE as a warning. Bug: 190058445 Test: adb commands Change-Id: I18fd63aba3f7326597fc3a8c93ba8c9097bf7348
-rw-r--r--java/com/android/server/ethernet/EthernetServiceImpl.java3
1 files changed, 3 insertions, 0 deletions
diff --git a/java/com/android/server/ethernet/EthernetServiceImpl.java b/java/com/android/server/ethernet/EthernetServiceImpl.java
index 3fc6aab..6b0ce32 100644
--- a/java/com/android/server/ethernet/EthernetServiceImpl.java
+++ b/java/com/android/server/ethernet/EthernetServiceImpl.java
@@ -35,6 +35,7 @@ import com.android.internal.util.IndentingPrintWriter;
import java.io.FileDescriptor;
import java.io.PrintWriter;
+import java.util.Objects;
import java.util.concurrent.atomic.AtomicBoolean;
/**
@@ -172,6 +173,7 @@ public class EthernetServiceImpl extends IEthernetManager.Stub {
@Override
public void requestTetheredInterface(ITetheredInterfaceCallback callback) {
+ Objects.requireNonNull(callback, "callback must not be null");
NetworkStack.checkNetworkStackPermissionOr(mContext,
android.Manifest.permission.NETWORK_SETTINGS);
mTracker.requestTetheredInterface(callback);
@@ -179,6 +181,7 @@ public class EthernetServiceImpl extends IEthernetManager.Stub {
@Override
public void releaseTetheredInterface(ITetheredInterfaceCallback callback) {
+ Objects.requireNonNull(callback, "callback must not be null");
NetworkStack.checkNetworkStackPermissionOr(mContext,
android.Manifest.permission.NETWORK_SETTINGS);
mTracker.releaseTetheredInterface(callback);