diff options
author | Bill Meier <wmeier@newsguy.com> | 2015-01-23 00:24:46 -0500 |
---|---|---|
committer | Bill Meier <wmeier@newsguy.com> | 2015-01-23 05:30:55 +0000 |
commit | 8d1a9848e3acc266447e1ccc032f377ba559ca50 (patch) | |
tree | a9bcbf39ec065f2ef3e37140abd3ce7b36855e40 /epan/dissectors/packet-extreme.c | |
parent | 5a23a02ab8ae59c451db76bd9304ee420f3e3be5 (diff) |
Remove incorrect 'if (tree)'
Incorrect because of one or both of the following:
- col_...()/expert...() called under 'if (tree)'
- vars set under 'if (tree)' used later (not under 'if (tree)'
as args to col_...()/expert_...()
Change-Id: I89f7d453f2d6eaa40d51cbd794ed2c9be7e549de
Reviewed-on: https://code.wireshark.org/review/6754
Reviewed-by: Bill Meier <wmeier@newsguy.com>
Diffstat (limited to 'epan/dissectors/packet-extreme.c')
-rw-r--r-- | epan/dissectors/packet-extreme.c | 224 |
1 files changed, 111 insertions, 113 deletions
diff --git a/epan/dissectors/packet-extreme.c b/epan/dissectors/packet-extreme.c index 8ed737f190..ad127db779 100644 --- a/epan/dissectors/packet-extreme.c +++ b/epan/dissectors/packet-extreme.c @@ -968,132 +968,130 @@ dissect_edp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) col_set_str(pinfo->cinfo, COL_PROTOCOL, PROTO_SHORT_NAME); col_set_str(pinfo->cinfo, COL_INFO, PROTO_SHORT_NAME ":"); - if (tree) { - ti = proto_tree_add_item(tree, proto_edp, tvb, offset, -1, - ENC_NA); - edp_tree = proto_item_add_subtree(ti, ett_edp); + ti = proto_tree_add_item(tree, proto_edp, tvb, offset, -1, + ENC_NA); + edp_tree = proto_item_add_subtree(ti, ett_edp); - proto_tree_add_item(edp_tree, hf_edp_version, tvb, offset, 1, - ENC_BIG_ENDIAN); - offset += 1; + proto_tree_add_item(edp_tree, hf_edp_version, tvb, offset, 1, + ENC_BIG_ENDIAN); + offset += 1; - proto_tree_add_item(edp_tree, hf_edp_reserved, tvb, offset, 1, - ENC_BIG_ENDIAN); - offset += 1; + proto_tree_add_item(edp_tree, hf_edp_reserved, tvb, offset, 1, + ENC_BIG_ENDIAN); + offset += 1; - data_length = tvb_get_ntohs(tvb, offset); - proto_tree_add_uint(edp_tree, hf_edp_length, tvb, offset, 2, - data_length); - offset += 2; + data_length = tvb_get_ntohs(tvb, offset); + proto_tree_add_uint(edp_tree, hf_edp_length, tvb, offset, 2, + data_length); + offset += 2; - packet_checksum = tvb_get_ntohs(tvb, offset); - /* - * If we have the entire ESP packet available, check the checksum. - */ - if (tvb_length(tvb) >= data_length) { - /* Checksum from version to null tlv */ - SET_CKSUM_VEC_TVB(cksum_vec[0], tvb, 0, data_length); - computed_checksum = in_cksum(&cksum_vec[0], 1); - checksum_good = (computed_checksum == 0); - checksum_bad = !checksum_good; - if (checksum_good) { - checksum_item = proto_tree_add_uint_format(edp_tree, - hf_edp_checksum, tvb, offset, 2, packet_checksum, - "Checksum: 0x%04x [correct]", - packet_checksum); - } else { - checksum_item = proto_tree_add_uint_format(edp_tree, - hf_edp_checksum, tvb, offset, 2, packet_checksum, - "Checksum: 0x%04x [incorrect, should be 0x%04x]", - packet_checksum, - in_cksum_shouldbe(packet_checksum, computed_checksum)); - } + packet_checksum = tvb_get_ntohs(tvb, offset); + /* + * If we have the entire ESP packet available, check the checksum. + */ + if (tvb_length(tvb) >= data_length) { + /* Checksum from version to null tlv */ + SET_CKSUM_VEC_TVB(cksum_vec[0], tvb, 0, data_length); + computed_checksum = in_cksum(&cksum_vec[0], 1); + checksum_good = (computed_checksum == 0); + checksum_bad = !checksum_good; + if (checksum_good) { + checksum_item = proto_tree_add_uint_format(edp_tree, + hf_edp_checksum, tvb, offset, 2, packet_checksum, + "Checksum: 0x%04x [correct]", + packet_checksum); } else { - checksum_good = checksum_bad = FALSE; - checksum_item = proto_tree_add_uint(edp_tree, hf_edp_checksum, - tvb, offset, 2, packet_checksum); + checksum_item = proto_tree_add_uint_format(edp_tree, + hf_edp_checksum, tvb, offset, 2, packet_checksum, + "Checksum: 0x%04x [incorrect, should be 0x%04x]", + packet_checksum, + in_cksum_shouldbe(packet_checksum, computed_checksum)); } - checksum_tree = proto_item_add_subtree(checksum_item, ett_edp_checksum); - checksum_item = proto_tree_add_boolean(checksum_tree, hf_edp_checksum_good, - tvb, offset, 2, checksum_good); - PROTO_ITEM_SET_GENERATED(checksum_item); - checksum_item = proto_tree_add_boolean(checksum_tree, hf_edp_checksum_bad, - tvb, offset, 2, checksum_bad); - PROTO_ITEM_SET_GENERATED(checksum_item); - offset += 2; + } else { + checksum_good = checksum_bad = FALSE; + checksum_item = proto_tree_add_uint(edp_tree, hf_edp_checksum, + tvb, offset, 2, packet_checksum); + } + checksum_tree = proto_item_add_subtree(checksum_item, ett_edp_checksum); + checksum_item = proto_tree_add_boolean(checksum_tree, hf_edp_checksum_good, + tvb, offset, 2, checksum_good); + PROTO_ITEM_SET_GENERATED(checksum_item); + checksum_item = proto_tree_add_boolean(checksum_tree, hf_edp_checksum_bad, + tvb, offset, 2, checksum_bad); + PROTO_ITEM_SET_GENERATED(checksum_item); + offset += 2; - seqno = tvb_get_ntohs(tvb, offset); - proto_tree_add_item(edp_tree, hf_edp_seqno, tvb, offset, 2, - ENC_BIG_ENDIAN); - offset += 2; + seqno = tvb_get_ntohs(tvb, offset); + proto_tree_add_item(edp_tree, hf_edp_seqno, tvb, offset, 2, + ENC_BIG_ENDIAN); + offset += 2; - /* Machine ID is 8 bytes, if it starts with 0000, the remaining - 6 bytes are a MAC */ - proto_tree_add_item(edp_tree, hf_edp_midtype, tvb, offset, 2, - ENC_BIG_ENDIAN); - offset += 2; + /* Machine ID is 8 bytes, if it starts with 0000, the remaining + 6 bytes are a MAC */ + proto_tree_add_item(edp_tree, hf_edp_midtype, tvb, offset, 2, + ENC_BIG_ENDIAN); + offset += 2; - proto_tree_add_item(edp_tree, hf_edp_midmac, tvb, offset, 6, - ENC_NA); - offset += 6; - - /* Decode the individual TLVs */ - while (offset < data_length && !last) { - if (data_length - offset < 4) { - proto_tree_add_expert_format(edp_tree, pinfo, &ei_edp_short_tlv, tvb, offset, 4, - "Too few bytes left for TLV: %u (< 4)", - data_length - offset); - break; - } - tlv_type = tvb_get_guint8(tvb, offset + 1); - tlv_length = tvb_get_ntohs(tvb, offset + 2); - - if ((tlv_length < 4) || (tlv_length > (data_length - offset))) { - proto_tree_add_expert_format(edp_tree, pinfo, &ei_edp_short_tlv, tvb, offset, 0, - "TLV with invalid length: %u", tlv_length); - break; - } - if (tlv_type != EDP_TYPE_NULL) - col_append_fstr(pinfo->cinfo, COL_INFO, " %s", - val_to_str(tlv_type, edp_type_vals, "[0x%02x]")); + proto_tree_add_item(edp_tree, hf_edp_midmac, tvb, offset, 6, + ENC_NA); + offset += 6; - switch (tlv_type) { - case EDP_TYPE_NULL: /* Last TLV */ - dissect_null_tlv(tvb, pinfo, offset, tlv_length, edp_tree); - last = 1; - break; - case EDP_TYPE_DISPLAY: /* MIB II display string */ - dissect_display_tlv(tvb, pinfo, offset, tlv_length, edp_tree); - break; - case EDP_TYPE_INFO: /* Basic system information */ - dissect_info_tlv(tvb, pinfo, offset, tlv_length, edp_tree); - break; - case EDP_TYPE_VLAN: /* VLAN info */ - dissect_vlan_tlv(tvb, pinfo, offset, tlv_length, edp_tree); - break; - case EDP_TYPE_ESRP: /* Extreme Standby Router Protocol */ - dissect_esrp_tlv(tvb, pinfo, offset, tlv_length, edp_tree); - break; - case EDP_TYPE_EAPS: /* Ethernet Automatic Protection Swtiching */ - dissect_eaps_tlv(tvb, pinfo, offset, tlv_length, edp_tree); - break; - case EDP_TYPE_ESL: /* EAPS shared link */ - dissect_esl_tlv(tvb, pinfo, offset, tlv_length, edp_tree); - break; - case EDP_TYPE_ELSM: /* Extreme Link Status Monitoring */ - dissect_elsm_tlv(tvb, pinfo, offset, tlv_length, edp_tree, seqno); - break; - case EDP_TYPE_ELRP: /* Extreme Loop Recognition Protocol */ - dissect_elrp_tlv(tvb, pinfo, offset, tlv_length, edp_tree); - break; - default: - dissect_unknown_tlv(tvb, pinfo, offset, tlv_length, edp_tree); - break; - } - offset += tlv_length; + /* Decode the individual TLVs */ + while (offset < data_length && !last) { + if (data_length - offset < 4) { + proto_tree_add_expert_format(edp_tree, pinfo, &ei_edp_short_tlv, tvb, offset, 4, + "Too few bytes left for TLV: %u (< 4)", + data_length - offset); + break; } + tlv_type = tvb_get_guint8(tvb, offset + 1); + tlv_length = tvb_get_ntohs(tvb, offset + 2); + if ((tlv_length < 4) || (tlv_length > (data_length - offset))) { + proto_tree_add_expert_format(edp_tree, pinfo, &ei_edp_short_tlv, tvb, offset, 0, + "TLV with invalid length: %u", tlv_length); + break; + } + if (tlv_type != EDP_TYPE_NULL) + col_append_fstr(pinfo->cinfo, COL_INFO, " %s", + val_to_str(tlv_type, edp_type_vals, "[0x%02x]")); + + switch (tlv_type) { + case EDP_TYPE_NULL: /* Last TLV */ + dissect_null_tlv(tvb, pinfo, offset, tlv_length, edp_tree); + last = 1; + break; + case EDP_TYPE_DISPLAY: /* MIB II display string */ + dissect_display_tlv(tvb, pinfo, offset, tlv_length, edp_tree); + break; + case EDP_TYPE_INFO: /* Basic system information */ + dissect_info_tlv(tvb, pinfo, offset, tlv_length, edp_tree); + break; + case EDP_TYPE_VLAN: /* VLAN info */ + dissect_vlan_tlv(tvb, pinfo, offset, tlv_length, edp_tree); + break; + case EDP_TYPE_ESRP: /* Extreme Standby Router Protocol */ + dissect_esrp_tlv(tvb, pinfo, offset, tlv_length, edp_tree); + break; + case EDP_TYPE_EAPS: /* Ethernet Automatic Protection Swtiching */ + dissect_eaps_tlv(tvb, pinfo, offset, tlv_length, edp_tree); + break; + case EDP_TYPE_ESL: /* EAPS shared link */ + dissect_esl_tlv(tvb, pinfo, offset, tlv_length, edp_tree); + break; + case EDP_TYPE_ELSM: /* Extreme Link Status Monitoring */ + dissect_elsm_tlv(tvb, pinfo, offset, tlv_length, edp_tree, seqno); + break; + case EDP_TYPE_ELRP: /* Extreme Loop Recognition Protocol */ + dissect_elrp_tlv(tvb, pinfo, offset, tlv_length, edp_tree); + break; + default: + dissect_unknown_tlv(tvb, pinfo, offset, tlv_length, edp_tree); + break; + } + offset += tlv_length; } + } void |