summaryrefslogtreecommitdiffstats
path: root/src/java/com/android/internal
diff options
context:
space:
mode:
authorWink Saville <wink@google.com>2012-09-05 12:16:00 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2012-09-05 12:16:00 -0700
commitb142fa0d4ec00ebb7df1b6657f56a57f0fbfd7fa (patch)
tree6a5f2919d3a2acf8a4789f8eaedea1894c139803 /src/java/com/android/internal
parentdfc287a2e2634b8ad0d98c9f5e1e390b8dc28eb1 (diff)
parentad10642b1f79079148211dade13dce276f9dd93f (diff)
downloadframeworks_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')
-rw-r--r--src/java/com/android/internal/telephony/gsm/SmsMessage.java28
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);
+ }
}
}
}