summaryrefslogtreecommitdiff
path: root/common/networkstackclient
diff options
context:
space:
mode:
authorXiao Ma <xiaom@google.com>2020-06-17 08:23:37 +0000
committerXiao Ma <xiaom@google.com>2020-06-17 10:15:48 +0000
commit65435e2810188ae23eeea04ff28d46b852d6320b (patch)
tree6a286f1e83c2072d2c5edea88e26b3192a9fe34e /common/networkstackclient
parentb9364f50bc10ffb539cc773fa5d78d49e205033d (diff)
Fix the potential NPE when calling IPMS API and ExecutionException is thrown.
Listener callback argument is marked as @Nullable in some APIs, means client isn't interested in learning about return value, in these cases should check if it's null or not before using this callback. Bug: 147922038 Test: atest NetworkStackTests FrameworksNetTests Merged-In: Ib46624c76c2c1e50c73ccfbb295a0e90e6fa1c88 Change-Id: Ib46624c76c2c1e50c73ccfbb295a0e90e6fa1c88
Diffstat (limited to 'common/networkstackclient')
-rw-r--r--common/networkstackclient/src/android/net/IpMemoryStoreClient.java14
1 files changed, 10 insertions, 4 deletions
diff --git a/common/networkstackclient/src/android/net/IpMemoryStoreClient.java b/common/networkstackclient/src/android/net/IpMemoryStoreClient.java
index f269f9c..a1c5694 100644
--- a/common/networkstackclient/src/android/net/IpMemoryStoreClient.java
+++ b/common/networkstackclient/src/android/net/IpMemoryStoreClient.java
@@ -92,6 +92,7 @@ public abstract class IpMemoryStoreClient {
() -> service.storeNetworkAttributes(l2Key, attributes.toParcelable(),
OnStatusListener.toAIDL(listener))));
} catch (ExecutionException m) {
+ if (null == listener) return;
ignoringRemoteException("Error storing network attributes",
() -> listener.onComplete(new Status(Status.ERROR_UNKNOWN)));
}
@@ -116,6 +117,7 @@ public abstract class IpMemoryStoreClient {
() -> service.storeBlob(l2Key, clientId, name, data,
OnStatusListener.toAIDL(listener))));
} catch (ExecutionException m) {
+ if (null == listener) return;
ignoringRemoteException("Error storing blob",
() -> listener.onComplete(new Status(Status.ERROR_UNKNOWN)));
}
@@ -143,7 +145,8 @@ public abstract class IpMemoryStoreClient {
OnL2KeyResponseListener.toAIDL(listener))));
} catch (ExecutionException m) {
ignoringRemoteException("Error finding L2 Key",
- () -> listener.onL2KeyResponse(new Status(Status.ERROR_UNKNOWN), null));
+ () -> listener.onL2KeyResponse(new Status(Status.ERROR_UNKNOWN),
+ null /* l2Key */));
}
}
@@ -164,7 +167,8 @@ public abstract class IpMemoryStoreClient {
OnSameL3NetworkResponseListener.toAIDL(listener))));
} catch (ExecutionException m) {
ignoringRemoteException("Error checking for network sameness",
- () -> listener.onSameL3NetworkResponse(new Status(Status.ERROR_UNKNOWN), null));
+ () -> listener.onSameL3NetworkResponse(new Status(Status.ERROR_UNKNOWN),
+ null /* response */));
}
}
@@ -186,7 +190,7 @@ public abstract class IpMemoryStoreClient {
} catch (ExecutionException m) {
ignoringRemoteException("Error retrieving network attributes",
() -> listener.onNetworkAttributesRetrieved(new Status(Status.ERROR_UNKNOWN),
- null, null));
+ null /* l2Key */, null /* attributes */));
}
}
@@ -210,7 +214,7 @@ public abstract class IpMemoryStoreClient {
} catch (ExecutionException m) {
ignoringRemoteException("Error retrieving blob",
() -> listener.onBlobRetrieved(new Status(Status.ERROR_UNKNOWN),
- null, null, null));
+ null /* l2Key */, null /* name */, null /* blob */));
}
}
@@ -235,6 +239,7 @@ public abstract class IpMemoryStoreClient {
runWhenServiceReady(service -> ignoringRemoteException(() ->
service.delete(l2Key, needWipe, OnDeleteStatusListener.toAIDL(listener))));
} catch (ExecutionException m) {
+ if (null == listener) return;
ignoringRemoteException("Error deleting from the memory store",
() -> listener.onComplete(new Status(Status.ERROR_UNKNOWN),
0 /* deletedRecords */));
@@ -266,6 +271,7 @@ public abstract class IpMemoryStoreClient {
() -> service.deleteCluster(cluster, needWipe,
OnDeleteStatusListener.toAIDL(listener))));
} catch (ExecutionException m) {
+ if (null == listener) return;
ignoringRemoteException("Error deleting from the memory store",
() -> listener.onComplete(new Status(Status.ERROR_UNKNOWN),
0 /* deletedRecords */));