aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-mikey.c
diff options
context:
space:
mode:
authorMichael Mann <mmann78@netscape.net>2014-10-19 00:29:35 -0400
committerAlexis La Goutte <alexis.lagoutte@gmail.com>2014-10-19 15:26:43 +0000
commit5e4e17ca5e0d5910aad8d6e9fc8b23d9a68b756e (patch)
tree1173fb48a2db0e444b9a75ad1741ea8eda523cd3 /epan/dissectors/packet-mikey.c
parent1427a8e9865d5bc1786499c0530ed56edb3fdebe (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.c80
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;
}