diff options
author | Michael Mann <mmann78@netscape.net> | 2014-10-19 00:29:35 -0400 |
---|---|---|
committer | Alexis La Goutte <alexis.lagoutte@gmail.com> | 2014-10-19 15:26:43 +0000 |
commit | 5e4e17ca5e0d5910aad8d6e9fc8b23d9a68b756e (patch) | |
tree | 1173fb48a2db0e444b9a75ad1741ea8eda523cd3 /epan/dissectors/packet-mikey.c | |
parent | 1427a8e9865d5bc1786499c0530ed56edb3fdebe (diff) |
Remove unnecessary tvb_ensure_bytes_exist calls.
All of the calls removed are followed by proto_tree_add_xxx calls of the same offset/length of the tvb_ensure_bytes_exist call. The proto_tree_add_xxx calls should throw the exception, so we don't need the "double check".
There are probably more calls that can be removed, these were just obvious as first glance, spurred mostly by noticing the (ab)use in packet-wsp.c
Change-Id: I37cee347c8cf8ab0559e21562c802d3b37f4871e
Reviewed-on: https://code.wireshark.org/review/4833
Petri-Dish: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Diffstat (limited to 'epan/dissectors/packet-mikey.c')
-rw-r--r-- | epan/dissectors/packet-mikey.c | 80 |
1 files changed, 10 insertions, 70 deletions
diff --git a/epan/dissectors/packet-mikey.c b/epan/dissectors/packet-mikey.c index 4a8f524b59..06beba3401 100644 --- a/epan/dissectors/packet-mikey.c +++ b/epan/dissectors/packet-mikey.c @@ -646,8 +646,6 @@ add_next_payload(tvbuff_t *tvb, proto_tree *tree, int offset) static int dissect_payload_cs_id_srtp(mikey_t *mikey _U_, tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree) { - tvb_ensure_bytes_exist(tvb, 0, 9); - if (tree) { proto_item *id_ti; proto_tree *id_tree; @@ -750,7 +748,6 @@ dissect_payload_kemac(mikey_t *mikey, tvbuff_t *tvb, packet_info *pinfo, proto_t guint16 mac_length; guint8 mac_alg; - tvb_ensure_bytes_exist(tvb, offset+0, 4); encr_alg = tvb_get_guint8(tvb, offset+1); encr_length = tvb_get_ntohs(tvb, offset+2); tvb_ensure_bytes_exist(tvb, offset+4, encr_length+1); @@ -788,10 +785,7 @@ dissect_payload_kemac(mikey_t *mikey, tvbuff_t *tvb, packet_info *pinfo, proto_t return 0; } - tvb_ensure_bytes_exist(tvb, offset+4+encr_length+1, mac_length); - if (tree) { - proto_tree_add_item(tree, hf_mikey[POS_KEMAC_MAC], tvb, 4+encr_length+1, mac_length, ENC_NA); - } + proto_tree_add_item(tree, hf_mikey[POS_KEMAC_MAC], tvb, 4+encr_length+1, mac_length, ENC_NA); return 4+encr_length+1+mac_length; } @@ -802,7 +796,6 @@ dissect_payload_pke(mikey_t *mikey _U_, tvbuff_t *tvb, packet_info *pinfo _U_, p int offset = 0; guint16 length; - tvb_ensure_bytes_exist(tvb, offset+0, 3); length = tvb_get_ntohs(tvb, offset+1) &0x3ff; if (tree) { @@ -811,10 +804,7 @@ dissect_payload_pke(mikey_t *mikey _U_, tvbuff_t *tvb, packet_info *pinfo _U_, p proto_tree_add_item(tree, hf_mikey[POS_PKE_DATA_LEN], tvb, 1, 2, ENC_BIG_ENDIAN); } - tvb_ensure_bytes_exist(tvb, offset+3, length); - if (tree) { - proto_tree_add_item(tree, hf_mikey[POS_PKE_DATA], tvb, 3, length, ENC_NA); - } + proto_tree_add_item(tree, hf_mikey[POS_PKE_DATA], tvb, 3, length, ENC_NA); return 3 + length; } @@ -826,7 +816,6 @@ dissect_payload_dh(mikey_t *mikey _U_, tvbuff_t *tvb, packet_info *pinfo _U_, pr int dh_length; guint8 kv; - tvb_ensure_bytes_exist(tvb, offset+0, 2); dh_group = tvb_get_guint8(tvb, offset+1); switch (dh_group) { @@ -843,7 +832,6 @@ dissect_payload_dh(mikey_t *mikey _U_, tvbuff_t *tvb, packet_info *pinfo _U_, pr return 0; } - tvb_ensure_bytes_exist(tvb, offset+2, dh_length+1); kv = tvb_get_guint8(tvb, offset+2+dh_length) & 0x0f; if (tree) { @@ -866,7 +854,6 @@ dissect_payload_sign(mikey_t *mikey _U_, tvbuff_t *tvb, packet_info *pinfo _U_, int offset = 0; guint16 length; - tvb_ensure_bytes_exist(tvb, offset+0, 2); length = ((tvb_get_guint8(tvb, offset+0) & 0x0f) << 8) + tvb_get_guint8(tvb, offset+1); if (tree) { @@ -874,10 +861,7 @@ dissect_payload_sign(mikey_t *mikey _U_, tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree_add_uint(tree, hf_mikey[POS_SIGNATURE_LEN], tvb, 0, 2, length); } - tvb_ensure_bytes_exist(tvb, offset+2, length); - if (tree) { - proto_tree_add_item(tree, hf_mikey[POS_SIGNATURE], tvb, 2, length, ENC_NA); - } + proto_tree_add_item(tree, hf_mikey[POS_SIGNATURE], tvb, 2, length, ENC_NA); return 2 + length; } @@ -888,7 +872,6 @@ dissect_payload_t(mikey_t *mikey _U_, tvbuff_t *tvb, packet_info *pinfo _U_, pro int offset = 0; int len = 0; - tvb_ensure_bytes_exist(tvb, offset+0, 2); ts_type = tvb_get_guint8(tvb, offset+1); if (tree) { @@ -922,7 +905,6 @@ dissect_payload_id(mikey_t *mikey _U_, tvbuff_t *tvb, packet_info *pinfo _U_, pr guint8 type; guint16 length; - tvb_ensure_bytes_exist(tvb, offset+0, 4); type = tvb_get_guint8(tvb, offset+1); length = tvb_get_ntohs(tvb, offset+2); if (tree) { @@ -930,7 +912,6 @@ dissect_payload_id(mikey_t *mikey _U_, tvbuff_t *tvb, packet_info *pinfo _U_, pr proto_tree_add_item(tree, hf_mikey[POS_ID_LEN], tvb, 2, 2, ENC_BIG_ENDIAN); } - tvb_ensure_bytes_exist(tvb, offset+4, length); if (tree) { proto_item* parent; proto_tree_add_item(tree, hf_mikey[POS_ID], tvb, 4, length, ENC_ASCII|ENC_NA); @@ -951,7 +932,6 @@ dissect_payload_idr(mikey_t *mikey _U_, tvbuff_t *tvb, packet_info *pinfo _U_, p guint8 type; guint16 length; - tvb_ensure_bytes_exist(tvb, offset+0, 5); type = tvb_get_guint8(tvb, offset+2); length = tvb_get_ntohs(tvb, offset+3); if (tree) { @@ -960,7 +940,6 @@ dissect_payload_idr(mikey_t *mikey _U_, tvbuff_t *tvb, packet_info *pinfo _U_, p proto_tree_add_item(tree, hf_mikey[POS_ID_LEN], tvb, 3, 2, ENC_BIG_ENDIAN); } - tvb_ensure_bytes_exist(tvb, offset+5, length); if (tree) { proto_item *parent; proto_tree_add_item(tree, hf_mikey[POS_ID], tvb, 5, length, ENC_ASCII|ENC_NA); @@ -985,7 +964,6 @@ dissect_payload_cert(mikey_t *mikey _U_, tvbuff_t *tvb, packet_info *pinfo, prot asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo); - tvb_ensure_bytes_exist(tvb, offset+0, 4); type = tvb_get_guint8(tvb, offset+1); length = tvb_get_ntohs(tvb, offset+2); @@ -1013,12 +991,9 @@ dissect_payload_v(mikey_t *mikey _U_, tvbuff_t *tvb, packet_info *pinfo _U_, pro guint16 length; guint8 alg; - tvb_ensure_bytes_exist(tvb, offset+0, 2); alg = tvb_get_guint8(tvb, offset+1); - if (tree) { - proto_tree_add_item(tree, hf_mikey[POS_V_AUTH_ALG], tvb, 1, 1, ENC_BIG_ENDIAN); - } + proto_tree_add_item(tree, hf_mikey[POS_V_AUTH_ALG], tvb, 1, 1, ENC_BIG_ENDIAN); switch (alg) { case MAC_NULL: @@ -1031,10 +1006,7 @@ dissect_payload_v(mikey_t *mikey _U_, tvbuff_t *tvb, packet_info *pinfo _U_, pro return 0; } - tvb_ensure_bytes_exist(tvb, offset+2, length); - if (tree) { - proto_tree_add_item(tree, hf_mikey[POS_V_DATA], tvb, 2, length, ENC_NA); - } + proto_tree_add_item(tree, hf_mikey[POS_V_DATA], tvb, 2, length, ENC_NA); return 2 + length; } @@ -1047,10 +1019,8 @@ dissect_payload_sp_param(enum sp_prot_t proto, tvbuff_t *tvb, proto_tree *tree) guint8 length; int hfindex; - tvb_ensure_bytes_exist(tvb, offset+0, 2); type = tvb_get_guint8(tvb, offset+0); length = tvb_get_guint8(tvb, offset+1); - tvb_ensure_bytes_exist(tvb, offset+2, length); /* Default */ hfindex = hf_mikey[POS_SP_PARAM_F]; @@ -1092,7 +1062,6 @@ dissect_payload_sp(mikey_t *mikey _U_, tvbuff_t *tvb, packet_info *pinfo _U_, pr guint8 no; enum sp_prot_t type; - tvb_ensure_bytes_exist(tvb, offset+0, 5); length = tvb_get_ntohs(tvb, offset+3); no = tvb_get_guint8(tvb, offset+1); type = (enum sp_prot_t)tvb_get_guint8(tvb, offset+2); @@ -1136,26 +1105,17 @@ dissect_payload_rand(mikey_t *mikey _U_, tvbuff_t *tvb, packet_info *pinfo _U_, int offset = 0; guint16 length; - tvb_ensure_bytes_exist(tvb, offset+0, 2); length = tvb_get_guint8(tvb, offset+1); - if (tree) { - proto_tree_add_item(tree, hf_mikey[POS_RAND_LEN], tvb, 1, 1, ENC_BIG_ENDIAN); - } - - tvb_ensure_bytes_exist(tvb, offset+2, length); + proto_tree_add_item(tree, hf_mikey[POS_RAND_LEN], tvb, 1, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(tree, hf_mikey[POS_RAND], tvb, 2, length, ENC_NA); - if (tree) { - proto_tree_add_item(tree, hf_mikey[POS_RAND], tvb, 2, length, ENC_NA); - } return 2 + length; } static int dissect_payload_err(mikey_t *mikey _U_, tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree) { - tvb_ensure_bytes_exist(tvb, 0, 4); - if (tree) { proto_item *parent; guint8 err_no; @@ -1178,12 +1138,10 @@ dissect_payload_keydata(mikey_t *mikey _U_, tvbuff_t *tvb, packet_info *pinfo _U guint8 kv_type; offset = 0; - tvb_ensure_bytes_exist(tvb, 0, 4); key_type = tvb_get_guint8(tvb, 1) >> 4; kv_type = tvb_get_guint8(tvb, 1) & 0x0f; data_len = tvb_get_ntohs(tvb, 2); - tvb_ensure_bytes_exist(tvb, 4, data_len); offset += 4; if (tree) { @@ -1202,14 +1160,10 @@ dissect_payload_keydata(mikey_t *mikey _U_, tvbuff_t *tvb, packet_info *pinfo _U /* Dissect SALT key */ if ((key_type == KD_TGK_SALT) || (key_type == KD_TEK_SALT)) { guint16 salt_len; - tvb_ensure_bytes_exist(tvb, offset, 2); salt_len = tvb_get_ntohs(tvb, offset); if (salt_len > 0) { - tvb_ensure_bytes_exist(tvb, offset+2, salt_len); - if (tree) { - proto_tree_add_item(tree, hf_mikey[POS_KEY_SALT_LEN], tvb, offset, 2, ENC_BIG_ENDIAN); - proto_tree_add_item(tree, hf_mikey[POS_KEY_SALT], tvb, offset+2, salt_len, ENC_NA); - } + proto_tree_add_item(tree, hf_mikey[POS_KEY_SALT_LEN], tvb, offset, 2, ENC_BIG_ENDIAN); + proto_tree_add_item(tree, hf_mikey[POS_KEY_SALT], tvb, offset+2, salt_len, ENC_NA); } offset += 2+salt_len; } @@ -1219,31 +1173,25 @@ dissect_payload_keydata(mikey_t *mikey _U_, tvbuff_t *tvb, packet_info *pinfo _U guint16 kv_from_len; guint16 kv_to_len; - tvb_ensure_bytes_exist(tvb, offset, 1); kv_from_len = tvb_get_guint8(tvb, offset); proto_tree_add_item(tree, hf_mikey[POS_KEY_KV_FROM_LEN], tvb, offset, 1, ENC_BIG_ENDIAN); if (kv_from_len > 0) { - tvb_ensure_bytes_exist(tvb, offset+1, kv_from_len); proto_tree_add_item(tree, hf_mikey[POS_KEY_KV_FROM], tvb, offset+1, kv_from_len, ENC_NA); } offset += 1+kv_from_len; - tvb_ensure_bytes_exist(tvb, offset, 1); kv_to_len = tvb_get_guint8(tvb, offset); proto_tree_add_item(tree, hf_mikey[POS_KEY_KV_TO_LEN], tvb, offset, 1, ENC_BIG_ENDIAN); if (kv_to_len > 0) { - tvb_ensure_bytes_exist(tvb, offset+1, kv_to_len); proto_tree_add_item(tree, hf_mikey[POS_KEY_KV_TO], tvb, offset+1, kv_to_len, ENC_NA); } offset += 1+kv_to_len; } else if (kv_type == KV_SPI) { guint16 kv_spi_len; - tvb_ensure_bytes_exist(tvb, offset, 1); kv_spi_len = tvb_get_guint8(tvb, offset); proto_tree_add_item(tree, hf_mikey[POS_KEY_KV_SPI_LEN], tvb, offset, 1, ENC_BIG_ENDIAN); if (kv_spi_len > 0) { - tvb_ensure_bytes_exist(tvb, offset+1, kv_spi_len); proto_tree_add_item(tree, hf_mikey[POS_KEY_KV_SPI], tvb, offset+1, kv_spi_len, ENC_NA); } offset += 1+kv_spi_len; @@ -1259,7 +1207,6 @@ dissect_payload_general_ext(mikey_t *mikey _U_, tvbuff_t *tvb, packet_info *pinf guint8 type; guint16 data_len; - tvb_ensure_bytes_exist(tvb, offset+0, 4); type = tvb_get_guint8(tvb, offset+1); data_len = tvb_get_ntohs(tvb, offset+2); @@ -1268,8 +1215,6 @@ dissect_payload_general_ext(mikey_t *mikey _U_, tvbuff_t *tvb, packet_info *pinf proto_tree_add_item(tree, hf_mikey[POS_GENERAL_EXT_LEN], tvb, 2, 2, ENC_BIG_ENDIAN); } - tvb_ensure_bytes_exist(tvb, offset+3, data_len); - if (tree) { proto_item *parent; @@ -1291,7 +1236,6 @@ dissect_payload_sakke(mikey_t *mikey _U_, tvbuff_t *tvb, packet_info *pinfo _U_, int offset = 0; guint16 data_len; - tvb_ensure_bytes_exist(tvb, offset+0, 5); data_len = tvb_get_ntohs(tvb, offset+3); if (tree) { @@ -1300,11 +1244,7 @@ dissect_payload_sakke(mikey_t *mikey _U_, tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree_add_item(tree, hf_mikey[POS_SAKKE_LEN], tvb, 3, 2, ENC_BIG_ENDIAN); } - tvb_ensure_bytes_exist(tvb, offset+5, data_len); - - if (tree) { - proto_tree_add_item(tree, hf_mikey[POS_SAKKE_DATA], tvb, 5, data_len, ENC_NA); - } + proto_tree_add_item(tree, hf_mikey[POS_SAKKE_DATA], tvb, 5, data_len, ENC_NA); return 5 + data_len; } |