From 6586ad9e80d4f85d2b1eae0f5ebfe72e2afa2819 Mon Sep 17 00:00:00 2001 From: Jack Yu Date: Thu, 7 Nov 2019 11:06:48 -0800 Subject: [PATCH] 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 --- .../com/android/internal/telephony/gsm/GsmSmsCbMessage.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/telephony/java/com/android/internal/telephony/gsm/GsmSmsCbMessage.java b/telephony/java/com/android/internal/telephony/gsm/GsmSmsCbMessage.java index 6eea118787a7d..008538da80dba 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 @@ public class GsmSmsCbMessage { private static Pair> 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) {