From 0445be53de644b49cb0504109bc5a8bd6b248420 Mon Sep 17 00:00:00 2001 From: Amit Mahajan Date: Wed, 12 May 2021 17:19:20 -0700 Subject: [PATCH] Add validity check to detect invalid PDUs. Test: manual Bug: 181382933 Change-Id: I32cdca12c279bf0514a8b7d102d5b4b6b0d76314 --- telephony/common/com/google/android/mms/pdu/PduParser.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/telephony/common/com/google/android/mms/pdu/PduParser.java b/telephony/common/com/google/android/mms/pdu/PduParser.java index 5340245ae869b..677fe2f188a91 100755 --- a/telephony/common/com/google/android/mms/pdu/PduParser.java +++ b/telephony/common/com/google/android/mms/pdu/PduParser.java @@ -1550,6 +1550,11 @@ public class PduParser { if (cur < TEXT_MIN) { int length = parseValueLength(pduDataStream); int startPos = pduDataStream.available(); + if (length > startPos) { + Log.e(LOG_TAG, "parseContentType: Invalid length " + length + + " when available bytes are " + startPos); + return (PduContentTypes.contentTypes[0]).getBytes(); //"*/*" + } pduDataStream.mark(1); temp = pduDataStream.read(); assert(-1 != temp);