commit | 6586ad9e80d4f85d2b1eae0f5ebfe72e2afa2819 | [log] [tgz] |
---|---|---|
author | Jack Yu <jackyu@google.com> | Thu Nov 07 11:06:48 2019 -0800 |
committer | Jack Yu <jackyu@google.com> | Thu Nov 07 11:13:31 2019 -0800 |
tree | bcc24995ebf540018f2b0ca9a44ca79a9f975444 | |
parent | cafc1388989a679d48b361919b274409fcbb2a39 [diff] |
Fixed incorrect WAC decoding Fixed the incorrect warning area coordinate decoding when data length is greater than 127 bytes. Bug: 143762197 Test: unit test Change-Id: I498ccd0933f31898d531dcea307e160ae94653e8
diff --git a/telephony/java/com/android/internal/telephony/gsm/GsmSmsCbMessage.java b/telephony/java/com/android/internal/telephony/gsm/GsmSmsCbMessage.java index 6eea118..008538d 100644 --- a/telephony/java/com/android/internal/telephony/gsm/GsmSmsCbMessage.java +++ b/telephony/java/com/android/internal/telephony/gsm/GsmSmsCbMessage.java
@@ -214,7 +214,7 @@ private static Pair<Integer, List<Geometry>> parseWarningAreaCoordinates( byte[] pdu, int wacOffset) { // little-endian - int wacDataLength = (pdu[wacOffset + 1] << 8) | pdu[wacOffset]; + int wacDataLength = ((pdu[wacOffset + 1] & 0xff) << 8) | (pdu[wacOffset] & 0xff); int offset = wacOffset + 2; if (offset + wacDataLength > pdu.length) {