diff options
author | Anders Broman <anders.broman@ericsson.com> | 2006-03-23 16:58:50 +0000 |
---|---|---|
committer | Anders Broman <anders.broman@ericsson.com> | 2006-03-23 16:58:50 +0000 |
commit | 2f9f463edea8c2835df3c2c0d85dea2218c718fc (patch) | |
tree | d981bcad7ec1f4436f3cc204fde71d8c4428bc62 /asn1/gsmmap | |
parent | fdb5257f7cc8e19e6f8bcd35edee225cf44438a2 (diff) |
Fix Bugs
820 gsm-map checkIMEI decoding error
821 gsm-map sendIMSI decoding error
svn path=/trunk/; revision=17703
Diffstat (limited to 'asn1/gsmmap')
-rw-r--r-- | asn1/gsmmap/GSMMAP.asn | 4 | ||||
-rw-r--r-- | asn1/gsmmap/packet-gsm_map-template.c | 17 |
2 files changed, 13 insertions, 8 deletions
diff --git a/asn1/gsmmap/GSMMAP.asn b/asn1/gsmmap/GSMMAP.asn index 09d93b02dc..bd76d58683 100644 --- a/asn1/gsmmap/GSMMAP.asn +++ b/asn1/gsmmap/GSMMAP.asn @@ -923,14 +923,14 @@ RequestingNodeType ::= ENUMERATED { --checkIMEI OPERATION -- ARGUMENT -CheckIMEIArg ::= IMEI +-- CheckIMEIArg ::= IMEI calling dissect_gsm_map_IMEI directly from template -- V2 -- checkIMEI OPERATION ::= { -- ARGUMENT SEQUENCE { -CheckIMEIArgV2 ::= SEQUENCE { +CheckIMEIArgV3 ::= SEQUENCE { imei IMEI, requestedEquipmentInfo RequestedEquipmentInfo, extensionContainer ExtensionContainer OPTIONAL, diff --git a/asn1/gsmmap/packet-gsm_map-template.c b/asn1/gsmmap/packet-gsm_map-template.c index a5d16cd2d4..112132d38a 100644 --- a/asn1/gsmmap/packet-gsm_map-template.c +++ b/asn1/gsmmap/packet-gsm_map-template.c @@ -72,7 +72,8 @@ static int hf_gsm_map_global_errorCode = -1; static int hf_gsm_map_SendAuthenticationInfoArg = -1; static int hf_gsm_map_SendAuthenticationInfoRes = -1; static int hf_gsm_mapSendEndSignal = -1; -static int hf_gsm_map_getPassword = -1; +static int hf_gsm_map_getPassword = -1; +static int hf_gsm_map_CheckIMEIArg = -1; static int hf_gsm_map_currentPassword = -1; static int hf_gsm_map_extension = -1; static int hf_gsm_map_nature_of_number = -1; @@ -666,7 +667,7 @@ static int dissect_invokeData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tv */ offset = get_ber_identifier(tvb, offset, &bug_class, &bug_pc, &bug_tag); offset = get_ber_length(tree, tvb, offset, &bug_len1, &bug_ind_field); - offset = dissect_gsm_map_ProcessAccessSignallingArgV3(TRUE, tvb, offset, pinfo, tree, hf_gsm_mapSendEndSignal); + offset = dissect_gsm_map_ProcessAccessSignallingArgV3(TRUE, tvb, offset, pinfo, tree, -1); }else{ offset=dissect_gsm_map_Bss_APDU(FALSE, tvb, offset, pinfo, tree, -1); } @@ -700,10 +701,10 @@ static int dissect_invokeData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tv offset=dissect_gsm_map_ProcessGroupCallSignallingArg(FALSE, tvb, offset, pinfo, tree, -1); break; case 43: /*checkIMEI*/ - if (application_context_version < 2 ){ - offset=dissect_gsm_map_CheckIMEIArg(FALSE, tvb, offset, pinfo, tree, -1); + if (application_context_version < 3 ){ + offset = dissect_gsm_map_IMEI(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_imei); }else{ - offset=dissect_gsm_map_CheckIMEIArgV2(FALSE, tvb, offset, pinfo, tree, -1); + offset=dissect_gsm_map_CheckIMEIArgV3(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_CheckIMEIArg); } break; case 44: /*mt-forwardSM*/ @@ -738,7 +739,7 @@ static int dissect_invokeData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tv offset=dissect_gsm_map_RestoreDataArg(FALSE, tvb, offset, pinfo, tree, -1); break; case 58: /*sendIMSI*/ - offset = dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, pinfo, tree, -1); + offset = dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_msisdn); break; case 59: /*processUnstructuredSS-Request*/ offset=dissect_gsm_map_Ussd_Arg(FALSE, tvb, offset, pinfo, tree, -1); @@ -1749,6 +1750,10 @@ void proto_register_gsm_map(void) { { "mapSendEndSignalArg", "gsm_map.mapsendendsignalarg", FT_BYTES, BASE_NONE, NULL, 0, "mapSendEndSignalArg", HFILL }}, + { &hf_gsm_map_CheckIMEIArg, + { "gsm_CheckIMEIArg", "gsm_map.CheckIMEIArg", + FT_BYTES, BASE_NONE, NULL, 0, + "gsm_CheckIMEIArg", HFILL }}, { &hf_gsm_map_extension, { "Extension", "gsm_map.extension", FT_BOOLEAN, 8, TFS(&gsm_map_extension_value), 0x80, |