summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorFrank Li <lifr@google.com>2020-06-24 16:53:53 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2020-06-24 16:53:53 +0000
commit17120a7ccd59cf0afc1f7008db2cdd90296f0638 (patch)
tree9b2f2b825e6aba6f9331b3aefd80c38d0a6743ed /src
parent9060138f3ac0e81d7988dd9c533d74ae470b93e0 (diff)
parentc2cdb2c76459fd41a6307de517dbb21d41cef311 (diff)
Fix NullPointerException on addErrorCode when input is Invalid error code am: ad90e1bfe1 am: c2cdb2c764
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/modules/NetworkStack/+/11987398 Change-Id: I56d1e71a1ce100a5306f5a53abe25d194c7f869b
Diffstat (limited to 'src')
-rw-r--r--src/com/android/networkstack/metrics/IpProvisioningMetrics.java11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/com/android/networkstack/metrics/IpProvisioningMetrics.java b/src/com/android/networkstack/metrics/IpProvisioningMetrics.java
index 1f969d4..64e173d 100644
--- a/src/com/android/networkstack/metrics/IpProvisioningMetrics.java
+++ b/src/com/android/networkstack/metrics/IpProvisioningMetrics.java
@@ -120,12 +120,21 @@ public class IpProvisioningMetrics {
transSuccess ? HostnameTransResult.HTR_SUCCESS : HostnameTransResult.HTR_FAILURE);
}
+ private static DhcpErrorCode dhcpErrorFromNumberSafe(int number) {
+ // See DhcpErrorCode.errorCodeWithOption
+ // TODO: add a DhcpErrorCode method to extract the code;
+ // or replace legacy error codes with the new metrics.
+ final DhcpErrorCode error = DhcpErrorCode.forNumber(number & 0xFFFF0000);
+ if (error == null) return DhcpErrorCode.ET_UNKNOWN;
+ return error;
+ }
+
/**
* write the DHCP error code into DhcpSession.
*/
public void addDhcpErrorCode(final int errorCode) {
if (mDhcpSessionBuilder.getErrorCodeCount() >= MAX_DHCP_ERROR_COUNT) return;
- mDhcpSessionBuilder.addErrorCode(DhcpErrorCode.forNumber(errorCode));
+ mDhcpSessionBuilder.addErrorCode(dhcpErrorFromNumberSafe(errorCode));
}
/**