summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Xiao Ma <xiaom@google.com> 2019-06-08 04:52:31 -0700
committer Xiao Ma <xiaom@google.com> 2019-06-13 13:00:47 +0000
commit782393ffcbbe4ff20a87b40b6a2950ed8ce9b742 (patch)
treec6a94643c98a53c45afed692bf77411d6bb413c3
parent6d371e092e38f91e1a82740f2db870eefeb04faa (diff)
Fix the potential NullPointerException.
The networkAttributesParcelable retrieved from IpMemoryStore might be null, it might cause crash with NullPointerException when attepmting to read from the field on a null object reference. Bug: 135174345 Test: atest FrameworksNetTests NetworkStackTests Merged-In: I658fbba3e18c5c640ed7d445d2cd59c4221e055f Merged-In: Ie6b5c293b4ca17622674d5f735a9d62e04410088 (cherry picked from commit 4769936f59f5aa2fa976f4a3d23a9c7363cf9117) Change-Id: I3be6e57f6f8c56f828b025828aae0640248d23a9
-rw-r--r--services/net/java/android/net/ipmemorystore/NetworkAttributes.java5
-rw-r--r--services/net/java/android/net/ipmemorystore/OnNetworkAttributesRetrievedListener.java4
2 files changed, 6 insertions, 3 deletions
diff --git a/services/net/java/android/net/ipmemorystore/NetworkAttributes.java b/services/net/java/android/net/ipmemorystore/NetworkAttributes.java
index e76976991797..818515ac9af1 100644
--- a/services/net/java/android/net/ipmemorystore/NetworkAttributes.java
+++ b/services/net/java/android/net/ipmemorystore/NetworkAttributes.java
@@ -127,6 +127,7 @@ public class NetworkAttributes {
@Nullable
private static InetAddress getByAddressOrNull(@Nullable final byte[] address) {
+ if (null == address) return null;
try {
return InetAddress.getByAddress(address);
} catch (UnknownHostException e) {
@@ -227,7 +228,9 @@ public class NetworkAttributes {
}
/**
- * Set the lease expiry timestamp of assigned v4 address.
+ * Set the lease expiry timestamp of assigned v4 address. Long.MAX_VALUE is used
+ * to represent "infinite lease".
+ *
* @param assignedV4AddressExpiry The lease expiry timestamp of assigned v4 address.
* @return This builder.
*/
diff --git a/services/net/java/android/net/ipmemorystore/OnNetworkAttributesRetrievedListener.java b/services/net/java/android/net/ipmemorystore/OnNetworkAttributesRetrievedListener.java
index ca6f3029d496..395ad98f38e0 100644
--- a/services/net/java/android/net/ipmemorystore/OnNetworkAttributesRetrievedListener.java
+++ b/services/net/java/android/net/ipmemorystore/OnNetworkAttributesRetrievedListener.java
@@ -40,8 +40,8 @@ public interface OnNetworkAttributesRetrievedListener {
// NonNull, but still don't crash the system server if null
if (null != listener) {
listener.onNetworkAttributesRetrieved(
- new Status(statusParcelable), l2Key,
- new NetworkAttributes(networkAttributesParcelable));
+ new Status(statusParcelable), l2Key, null == networkAttributesParcelable
+ ? null : new NetworkAttributes(networkAttributesParcelable));
}
}