Openmoko Bug #1728: SMS parser bug?
Openmoko Public Trac
bugs at docs.openmoko.org
Mon Aug 25 12:29:19 CEST 2008
#1728: SMS parser bug?
-----------------------+----------------------------------------------------
Reporter: odlg | Owner: tick
Type: defect | Status: accepted
Priority: high | Milestone:
Component: Qtopia | Version: Om2008.8
Severity: major | Resolution:
Keywords: | Blockedby:
Reproducible: | Blocking:
-----------------------+----------------------------------------------------
Comment(by tick):
I think in Qtopia it will to view the semi-octet address length as the
string length of the 7-packed string.
(The unit of getOctets is byte ~_~)
I think its wrong.
according to 3GPP-TS 23.40 9.1.2.5
''The Address-Length field is an integer representation of the number of
useful semi-octets within the Address-Value
field, i.e. excludes any semi octet containing only fill bits.''
for 'sipgate' shall be 14 octets with 8 bit pack and 13 with 7-pack
that why the address length is 0x0D.
In Qtopia it tried to access 13 bytes instead, I think that's why I can
see 'google' on the screenshot and some other stuff, and why messages are
ruined.
The following patch is my fix through my guess, it is *NOT* tested yet.
Holger would you test this for me?
I cannot reproduce this issues easily in Taiwan, and only can guess.
However, if the length of message is odd, it seems will cause trouble.
(Still need to check)
diff --git a/src/libraries/qtopiaphone/qsmsmessage.cpp
b/src/libraries/qtopiaphone/qsmsmessage.cpp
index 1b05131..4adbef3 100644
--- a/src/libraries/qtopiaphone/qsmsmessage.cpp
+++ b/src/libraries/qtopiaphone/qsmsmessage.cpp
@@ -1872,9 +1872,7 @@ QString QPDUMessage::address(bool SCAddress)
skipOctet();
if ( !SCAddress ) {
- if ( at != SMS_Address_AlphaNumeric ) {
- len = len / 2 + (len % 2);
- }
+ len = len / 2 + (len % 2);
} else {
len--;
}
--
Ticket URL: <https://docs.openmoko.org/trac/ticket/1728#comment:16>
docs.openmoko.org <http://docs.openmoko.org/trac/>
openmoko trac
More information about the buglog
mailing list