diff options
| author | 2019-06-08 04:52:31 -0700 | |
|---|---|---|
| committer | 2019-06-13 13:00:47 +0000 | |
| commit | 782393ffcbbe4ff20a87b40b6a2950ed8ce9b742 (patch) | |
| tree | c6a94643c98a53c45afed692bf77411d6bb413c3 | |
| parent | 6d371e092e38f91e1a82740f2db870eefeb04faa (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.java | 5 | ||||
| -rw-r--r-- | services/net/java/android/net/ipmemorystore/OnNetworkAttributesRetrievedListener.java | 4 |
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)); } } |