diff options
author | Luke Mewburn <luke@mewburn.net> | 2016-01-28 17:19:13 +1100 |
---|---|---|
committer | Anders Broman <a.broman58@gmail.com> | 2016-01-29 14:58:30 +0000 |
commit | d6caaaab6c387c8a842aa81a6eb4fce209e64562 (patch) | |
tree | d57f5460827068550b57a45fbb0cd13d9fa457c8 /asn1 | |
parent | 5084a423e88508c1d8a1b106262410b9bb185075 (diff) |
gsm_map: decode SRISM v1 and v2 result
Fix decoding of sendRoutingInfoForSM (SRISM)
application contexts version 1 and version 2.
Use a (slightly modified) version of the ASN.1 from
ETS 300 599: December 2000 (GSM 09.02 version 4.19.1), clause 14.7.6
which has LocationInfoWithLMSI that is incompatible with
application context version 3 in
3GPP TS 29.002 version 3.20.0 Release 1999, clause 17.7.6.
Bug: 9622
Ping-Bug: 9704
Change-Id: Icc9a0a1743a6eb4c907f4cab3fb2137db139ad74
Reviewed-on: https://code.wireshark.org/review/13572
Petri-Dish: Anders Broman <a.broman58@gmail.com>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'asn1')
-rw-r--r-- | asn1/gsm_map/GSMMAP.asn | 21 | ||||
-rw-r--r-- | asn1/gsm_map/packet-gsm_map-template.c | 6 |
2 files changed, 26 insertions, 1 deletions
diff --git a/asn1/gsm_map/GSMMAP.asn b/asn1/gsm_map/GSMMAP.asn index a47c237467..c00ebbe8d6 100644 --- a/asn1/gsm_map/GSMMAP.asn +++ b/asn1/gsm_map/GSMMAP.asn @@ -2,6 +2,7 @@ --SIEMENS ASN.1 Compiler R5.70 (Production_5.70) -- Date: 2003-09-04 Time: 14:14:00 -- Updated to version 3GPP TS 29.002 V7.5.0 (2006-09) Release 7 +-- Partially from ETS 300 599: December 2000 (GSM 09.02 version 4.19.1) DummyMAP{ 0 identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-Protocol (4) version5 (5) } @@ -682,6 +683,26 @@ RoutingInfoForSM-ArgV1 ::= SEQUENCE { --correlationID [15] CorrelationID OPTIONAL } +-- From ETS 300 599: December 2000 (GSM 09.02 version 4.19.1), clause 14.7.6 +RoutingInfoForSM-ResV2::= SEQUENCE { + imsi IMSI, + locationInfoWithLMSI [0] LocationInfoWithLMSIv2, + mwd-Set [2] BOOLEAN OPTIONAL, + -- mwd-Set must be absent in version greater 1 + ...} + +-- From ETS 300 599: December 2000 (GSM 09.02 version 4.19.1), clause 14.7.6 +LocationInfoWithLMSIv2 ::= SEQUENCE { + locationInfo LocationInfo, + lmsi LMSI OPTIONAL, + ...} + +-- From ETS 300 599: December 2000 (GSM 09.02 version 4.19.1), clause 14.7.6 +LocationInfo ::= CHOICE { + roamingNumber [0] ISDN-AddressString, + -- roamingNumber must not be used in version greater 1 + msc-Number [1] ISDN-AddressString} + Ki ::= OCTET STRING (SIZE (16)) SendParametersArg ::= SEQUENCE { diff --git a/asn1/gsm_map/packet-gsm_map-template.c b/asn1/gsm_map/packet-gsm_map-template.c index 9c75f01d8e..ccd19f7b03 100644 --- a/asn1/gsm_map/packet-gsm_map-template.c +++ b/asn1/gsm_map/packet-gsm_map-template.c @@ -1485,7 +1485,11 @@ static int dissect_returnResultData(proto_tree *tree, tvbuff_t *tvb, int offset, offset=dissect_gsm_map_sm_MT_ForwardSM_Res(FALSE, tvb, offset, actx, tree, -1); break; case 45: /*sendRoutingInfoForSM*/ - offset=dissect_gsm_map_sm_RoutingInfoForSM_Res(FALSE, tvb, offset, actx, tree, -1); + if (application_context_version < 3) { + offset=dissect_gsm_old_RoutingInfoForSM_ResV2(FALSE, tvb, offset, actx, tree, -1); + } else { + offset=dissect_gsm_map_sm_RoutingInfoForSM_Res(FALSE, tvb, offset, actx, tree, -1); + } break; case 46: /*mo-forwardSM*/ offset=dissect_gsm_map_sm_MO_ForwardSM_Res(FALSE, tvb, offset, actx, tree, -1); |