summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXiao Ma <xiaom@google.com>2019-03-14 18:14:36 +0900
committerXiao Ma <xiaom@google.com>2019-06-07 20:30:16 +0900
commita66de9c21eac7e57bcf2adb667c2ef679870d48c (patch)
tree4198e8f3de763636626109518a36d2820fdbb39f
parentfe283df7abf4de27ab52c7cd998b4d5dfe01f1ac (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: 122710829 Test: atest FrameworksNetTests NetworkStackTests Change-Id: Id7527199424e55f1e14836e81a5d1965d13013a2
-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));
}
}