diff options
author | Ivan Nardi <nardi.ivan@gmail.com> | 2017-06-14 20:14:30 +0200 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2017-06-15 11:48:11 +0000 |
commit | 1d657acf2d86173087c28cce9f33e11299815fd5 (patch) | |
tree | 637066077a8dbbc882adef3813d7472c3519ad8b /epan/dissectors/packet-bssgp.c | |
parent | b62346b3040fe4ee6cebb7e5a3f1894d9ab767cc (diff) |
gsm-a, nas-eps: enhance handling of missing mandatory i.e.
When a mandatory information element is missing, try to report an expert info,
instead of throwing a fatal malformed exception (or of reporting nothing at all).
According to TS 24.007 11.2.3, a mandatory i.e. may be part of the imperative part
of the message, so that expert info should be at PI_ERROR level
Change-Id: Id399c236f2923db36540bbda0d29d666548f7cbd
Reviewed-on: https://code.wireshark.org/review/22134
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'epan/dissectors/packet-bssgp.c')
-rw-r--r-- | epan/dissectors/packet-bssgp.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/epan/dissectors/packet-bssgp.c b/epan/dissectors/packet-bssgp.c index 9ca4e4b766..ebefffed11 100644 --- a/epan/dissectors/packet-bssgp.c +++ b/epan/dissectors/packet-bssgp.c @@ -4217,9 +4217,9 @@ bssgp_dl_unitdata(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 o pinfo->link_dir = P2P_DIR_DL; /* TLLI (current) TLLI/11.3.35 M V 4 */ - ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_TLLI, " - current"); + ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_TLLI, " - current", ei_bssgp_missing_mandatory_element); /* QoS Profile (note 1) QoS Profile/11.3.28 M V 3 */ - ELEM_MAND_V(BSSGP_PDU_TYPE, DE_BSSGP_QOS_PROFILE, NULL); + ELEM_MAND_V(BSSGP_PDU_TYPE, DE_BSSGP_QOS_PROFILE, NULL, ei_bssgp_missing_mandatory_element); /* PDU Lifetime PDU Lifetime/11.3.25 M TLV 4 */ ELEM_MAND_TELV(0x16, BSSGP_PDU_TYPE, DE_BSSGP_PDU_LIFETIME, NULL, ei_bssgp_missing_mandatory_element); @@ -4295,9 +4295,9 @@ bssgp_ul_unitdata(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 o */ pinfo->link_dir = P2P_DIR_UL; /* TLLI TLLI/11.3.35 M V 4 */ - ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_TLLI, NULL); + ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_TLLI, NULL, ei_bssgp_missing_mandatory_element); /* QoS Profile QoS Profile/11.3.28 M V 3 */ - ELEM_MAND_V(BSSGP_PDU_TYPE, DE_BSSGP_QOS_PROFILE, NULL); + ELEM_MAND_V(BSSGP_PDU_TYPE, DE_BSSGP_QOS_PROFILE, NULL, ei_bssgp_missing_mandatory_element); /* Cell Identifier Cell Identifier/11.3.9 M TLV 10 */ ELEM_OPT_TELV(BSSGP_IEI_CELL_IDENTIFIER, BSSGP_PDU_TYPE, DE_BSSGP_CELL_ID , NULL); /* PFI PFI/11.3.42 O TLV 3 */ @@ -7469,7 +7469,7 @@ proto_register_bssgp(void) static ei_register_info ei[] = { { &ei_bssgp_extraneous_data, { "bssgp.extraneous_data", PI_PROTOCOL, PI_NOTE, "Extraneous Data, dissector bug or later version spec(report to wireshark.org)", EXPFILL }}, - { &ei_bssgp_missing_mandatory_element, { "bssgp.missing_mandatory_element", PI_PROTOCOL, PI_WARN, "Missing Mandatory element, rest of dissection is suspect", EXPFILL }}, + { &ei_bssgp_missing_mandatory_element, { "bssgp.missing_mandatory_element", PI_PROTOCOL, PI_ERROR, "Missing Mandatory element, rest of dissection is suspect", EXPFILL }}, { &ei_bssgp_not_dissected_yet, { "bssgp.not_dissected_yet", PI_UNDECODED, PI_WARN, "Not dissected yet", EXPFILL }}, { &ei_bssgp_erroneous_app_container, { "bssgp.erroneous_app_container", PI_PROTOCOL, PI_WARN, "Erroneous Application Container including IEI and LI", EXPFILL }}, { &ei_bssgp_si_item, { "bssgp.erroneous_app_container", PI_PROTOCOL, PI_WARN, "Unknown SI message", EXPFILL }}, |