diff options
author | Wink Saville <wink@google.com> | 2012-09-05 12:16:00 -0700 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2012-09-05 12:16:00 -0700 |
commit | b142fa0d4ec00ebb7df1b6657f56a57f0fbfd7fa (patch) | |
tree | 6a5f2919d3a2acf8a4789f8eaedea1894c139803 /src/java/com/android/internal/telephony/gsm | |
parent | dfc287a2e2634b8ad0d98c9f5e1e390b8dc28eb1 (diff) | |
parent | ad10642b1f79079148211dade13dce276f9dd93f (diff) | |
download | frameworks_opt_telephony-b142fa0d4ec00ebb7df1b6657f56a57f0fbfd7fa.zip frameworks_opt_telephony-b142fa0d4ec00ebb7df1b6657f56a57f0fbfd7fa.tar.gz frameworks_opt_telephony-b142fa0d4ec00ebb7df1b6657f56a57f0fbfd7fa.tar.bz2 |
am ad10642b: am 380be4a4: am 6fe2a8a4: Merge "Handle the case when TP-PI reserved bits are set"
* commit 'ad10642b1f79079148211dade13dce276f9dd93f':
Handle the case when TP-PI reserved bits are set
Diffstat (limited to 'src/java/com/android/internal/telephony/gsm')
-rw-r--r-- | src/java/com/android/internal/telephony/gsm/SmsMessage.java | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/src/java/com/android/internal/telephony/gsm/SmsMessage.java b/src/java/com/android/internal/telephony/gsm/SmsMessage.java index 76a4b7f..9421dd7 100644 --- a/src/java/com/android/internal/telephony/gsm/SmsMessage.java +++ b/src/java/com/android/internal/telephony/gsm/SmsMessage.java @@ -966,18 +966,22 @@ public class SmsMessage extends SmsMessageBase { // additional TP-PI octets. moreExtraParams = p.getByte(); } - // TP-Protocol-Identifier - if ((extraParams & 0x01) != 0) { - protocolIdentifier = p.getByte(); - } - // TP-Data-Coding-Scheme - if ((extraParams & 0x02) != 0) { - dataCodingScheme = p.getByte(); - } - // TP-User-Data-Length (implies existence of TP-User-Data) - if ((extraParams & 0x04) != 0) { - boolean hasUserDataHeader = (firstByte & 0x40) == 0x40; - parseUserData(p, hasUserDataHeader); + // As per 3GPP 23.040 section 9.2.3.27 TP-Parameter-Indicator, + // only process the byte if the reserved bits (bits3 to 6) are zero. + if ((extraParams & 0x78) == 0) { + // TP-Protocol-Identifier + if ((extraParams & 0x01) != 0) { + protocolIdentifier = p.getByte(); + } + // TP-Data-Coding-Scheme + if ((extraParams & 0x02) != 0) { + dataCodingScheme = p.getByte(); + } + // TP-User-Data-Length (implies existence of TP-User-Data) + if ((extraParams & 0x04) != 0) { + boolean hasUserDataHeader = (firstByte & 0x40) == 0x40; + parseUserData(p, hasUserDataHeader); + } } } } |