summaryrefslogtreecommitdiffstats
path: root/src/java/com/android/internal/telephony
diff options
context:
space:
mode:
authorWink Saville <wink@google.com>2012-09-05 12:12:45 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2012-09-05 12:12:45 -0700
commitad10642b1f79079148211dade13dce276f9dd93f (patch)
tree16b38fcfa458b69a63a45033d85c4a53fcb3a5c3 /src/java/com/android/internal/telephony
parentea36fc2a83fd4925c36b46af3ec2b95e7bd8a7e2 (diff)
parent380be4a4fa0290f4b86309b22778839fab8c1b5e (diff)
downloadframeworks_opt_telephony-ad10642b1f79079148211dade13dce276f9dd93f.zip
frameworks_opt_telephony-ad10642b1f79079148211dade13dce276f9dd93f.tar.gz
frameworks_opt_telephony-ad10642b1f79079148211dade13dce276f9dd93f.tar.bz2
am 380be4a4: am 6fe2a8a4: Merge "Handle the case when TP-PI reserved bits are set"
* commit '380be4a4fa0290f4b86309b22778839fab8c1b5e': Handle the case when TP-PI reserved bits are set
Diffstat (limited to 'src/java/com/android/internal/telephony')
-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);
+ }
}
}
}