Don't assign to a proto_item * if the value won't be used: Coverity 832-834.

Also: white space cleanup.

svn path=/trunk/; revision=36459
This commit is contained in:
Bill Meier 2011-04-04 18:13:22 +00:00
parent 031164aa9f
commit 07e325bf63
1 changed files with 68 additions and 68 deletions

View File

@ -1,8 +1,8 @@
/* packet-ancp.c
*
* Dissector for ANCP - Access Node Control Protocol
* Dissector for ANCP - Access Node Control Protocol
*
* More info on the protocol can be found on IETF:
* More info on the protocol can be found on IETF:
* http://tools.ietf.org/wg/ancp/
* http://tools.ietf.org/html/draft-ietf-ancp-protocol-09
*
@ -45,9 +45,9 @@
#define ANCP_GSMP_ETHER_TYPE 0x880C
#define TECH_TYPE_DSL 0x5
#define ANCP_RESULT_MASK 0xF0
#define ANCP_RESULT_MASK 0xF0
#define ANCP_CODE_MASK 0x0FFF
#define ANCP_I_FLAG_MASK 0x80
#define ANCP_I_FLAG_MASK 0x80
#define ANCP_SUBMSG_MASK 0x7FFF
#define ADJ_CODE_MASK 0x7F /* excluding MSB M-Flag */
@ -255,7 +255,7 @@ static const value_string dsl_line_attr_units[] = {
{ 0x8D, "msec" },
{ 0x8E, "msec" },
{ 0x8F, "" },
{ 0x90, "" },
{ 0x90, "" },
{ 0, NULL }
};
@ -298,15 +298,15 @@ dissect_ancp_port_up_dn_mgmt(tvbuff_t *tvb, proto_tree *ancp_tree, gint offset)
gint16 num_tlvs, num_stlvs;
gint val;
sti = proto_tree_add_item(ancp_tree, hf_ancp_port, tvb, offset, 4,
proto_tree_add_item(ancp_tree, hf_ancp_port, tvb, offset, 4,
FALSE);
offset += 4;
sti = proto_tree_add_item(ancp_tree, hf_ancp_port_sess_num, tvb, offset, 4,
proto_tree_add_item(ancp_tree, hf_ancp_port_sess_num, tvb, offset, 4,
FALSE);
offset += 4;
sti = proto_tree_add_item(ancp_tree, hf_ancp_evt_seq_num, tvb, offset, 4,
proto_tree_add_item(ancp_tree, hf_ancp_evt_seq_num, tvb, offset, 4,
FALSE);
offset += 4;
@ -316,26 +316,26 @@ dissect_ancp_port_up_dn_mgmt(tvbuff_t *tvb, proto_tree *ancp_tree, gint offset)
/* Start of the Extension Block */
proto_tree_add_item(ancp_tree, hf_ancp_reserved, tvb, offset, 1, FALSE);
offset += 1;
/*
/*
* We have already displayed the message type in the common header dissect
* need not display this again here - skip it
* need not display this again here - skip it
*/
offset += 1; /* Message type in Ext Blk */
proto_tree_add_item(ancp_tree, hf_ancp_tech_type, tvb, offset, 1, FALSE);
tech_type = tvb_get_guint8(tvb, offset);
offset += 1;
proto_tree_add_item(ancp_tree, hf_ancp_blk_len, tvb, offset, 1, FALSE);
offset += 1;
if (tech_type == TECH_TYPE_DSL) {
proto_tree_add_item(ancp_tree, hf_ancp_num_ext_tlvs, tvb,
proto_tree_add_item(ancp_tree, hf_ancp_num_ext_tlvs, tvb,
offset, 2, FALSE);
num_tlvs = tvb_get_ntohs(tvb, offset);
offset += 2;
sti = proto_tree_add_item(ancp_tree, hf_ancp_len, tvb,
sti = proto_tree_add_item(ancp_tree, hf_ancp_len, tvb,
offset, 2, FALSE);
blk_len = tvb_get_ntohs(tvb, offset);
proto_item_append_text(sti, " (Extension Block)");
@ -345,30 +345,30 @@ dissect_ancp_port_up_dn_mgmt(tvbuff_t *tvb, proto_tree *ancp_tree, gint offset)
tlv_tree = proto_item_add_subtree(sti, ett_ancp_len);
for( ;num_tlvs; num_tlvs--) {
sti = proto_tree_add_item(tlv_tree, hf_ancp_ext_tlv_type, tvb,
proto_tree_add_item(tlv_tree, hf_ancp_ext_tlv_type, tvb,
offset, 2, FALSE);
ttype = tvb_get_ntohs(tvb, offset);
offset += 2;
sti = proto_tree_add_item(tlv_tree, hf_ancp_len, tvb,
sti = proto_tree_add_item(tlv_tree, hf_ancp_len, tvb,
offset, 2, FALSE);
tlen = tvb_get_ntohs(tvb, offset);
offset += 2;
/*
/*
* Extension Block is common for event message and port
* management message, but the TLVs that can appear
* are different
*/
switch (ttype) {
case TLV_DSL_LINE_ATTRIBUTES:
case TLV_DSL_LINE_ATTRIBUTES:
/* Create a DSL Attribute SubTree */
dsl_tree = proto_item_add_subtree(sti,
dsl_tree = proto_item_add_subtree(sti,
ett_ancp_ext_tlv_type);
num_stlvs = tlen / 8; /* TODO - better way? */
for ( ;num_stlvs; num_stlvs--) {
sti = proto_tree_add_item(dsl_tree,
hf_ancp_dsl_line_stlv_type, tvb, offset,
proto_tree_add_item(dsl_tree,
hf_ancp_dsl_line_stlv_type, tvb, offset,
2, FALSE);
stlvtype = tvb_get_ntohs(tvb, offset);
offset += 2;
@ -376,38 +376,38 @@ dissect_ancp_port_up_dn_mgmt(tvbuff_t *tvb, proto_tree *ancp_tree, gint offset)
stlvlen = tvb_get_ntohs(tvb, offset);
offset += 2; /* Sub TLV Length */
sti = proto_tree_add_item(dsl_tree,
hf_ancp_dsl_line_stlv_value, tvb, offset,
sti = proto_tree_add_item(dsl_tree,
hf_ancp_dsl_line_stlv_value, tvb, offset,
stlvlen, FALSE);
val = tvb_get_ntohl(tvb, offset);
offset += stlvlen; /* Except loop-encap, rest are 4B */
switch (stlvtype) {
case TLV_DSL_LINE_STATE:
proto_item_append_text(sti, " (%s)",
val_to_str(val, dsl_line_state_names,
proto_item_append_text(sti, " (%s)",
val_to_str(val, dsl_line_state_names,
"Unknown (0x%02x)"));
break;
case TLV_DSL_TYPE:
proto_item_append_text(sti, " (%s)",
val_to_str(val, dsl_line_type_names,
proto_item_append_text(sti, " (%s)",
val_to_str(val, dsl_line_type_names,
"Unknown (0x%02x)"));
break;
default:
/* Add Unit */
proto_item_append_text(sti, " %s",
val_to_str(stlvtype,
dsl_line_attr_units,
proto_item_append_text(sti, " %s",
val_to_str(stlvtype,
dsl_line_attr_units,
"Unknown (0x%02x)"));
break;
}
}
SKIPPADDING(offset, stlvlen);
}
break;
case TLV_PING_OPAQUE_DATA:
/* 2 32b values*/
proto_tree_add_item(tlv_tree, hf_ancp_oam_opaque,
proto_tree_add_item(tlv_tree, hf_ancp_oam_opaque,
tvb, offset, 4, FALSE);
offset += 4;
proto_tree_add_item(tlv_tree, hf_ancp_oam_opaque,
@ -416,16 +416,16 @@ dissect_ancp_port_up_dn_mgmt(tvbuff_t *tvb, proto_tree *ancp_tree, gint offset)
break;
case TLV_PING_PARAMS:
/* Count (1B) Timeout (1B), 2B empty */
proto_tree_add_item(tlv_tree,
proto_tree_add_item(tlv_tree,
hf_ancp_oam_loopb_cnt, tvb, offset, 1, FALSE);
offset += 1;
proto_tree_add_item(tlv_tree,
proto_tree_add_item(tlv_tree,
hf_ancp_oam_timeout, tvb, offset, 1, FALSE);
offset += 1;
/* Lets not bother about 2B until IETF WG figures out */
offset += 2;
offset += 2;
break;
default:
default:
/* Assume TLV value is string - covers ALCID, OAM resp */
proto_tree_add_item(tlv_tree, hf_ancp_ext_tlv_value_str,
tvb, offset, tlen, FALSE);
@ -434,11 +434,11 @@ dissect_ancp_port_up_dn_mgmt(tvbuff_t *tvb, proto_tree *ancp_tree, gint offset)
break;
} /* end switch {ttype} */
} /* end for {numtlvs} */
} /* end if {DSL} */
} /* end if {DSL} */
}
static void
dissect_ancp_adj_msg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ancp_tree,
dissect_ancp_adj_msg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ancp_tree,
gint offset, struct ancp_tap_t *ancp_info
)
{
@ -483,14 +483,14 @@ dissect_ancp_adj_msg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ancp_tree,
proto_item_append_text(sti, " (Type = %d, Flag = %d)",
byte >> 4, byte & 0x0F);
proto_tree_add_item(ancp_tree, hf_ancp_sender_instance, tvb, offset, 3,
proto_tree_add_item(ancp_tree, hf_ancp_sender_instance, tvb, offset, 3,
FALSE);
offset += 3;
proto_tree_add_item(ancp_tree, hf_ancp_p_id, tvb, offset, 1, FALSE);
offset += 1;
proto_tree_add_item(ancp_tree, hf_ancp_receiver_instance, tvb, offset, 3,
proto_tree_add_item(ancp_tree, hf_ancp_receiver_instance, tvb, offset, 3,
FALSE);
offset += 3;
@ -498,7 +498,7 @@ dissect_ancp_adj_msg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ancp_tree,
offset, 1, FALSE);
offset += 1;
sti = proto_tree_add_item(ancp_tree, hf_ancp_num_tlvs, tvb, offset, 1,
sti = proto_tree_add_item(ancp_tree, hf_ancp_num_tlvs, tvb, offset, 1,
FALSE);
numcaps = tvb_get_guint8(tvb, offset);
offset += 1;
@ -506,7 +506,7 @@ dissect_ancp_adj_msg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ancp_tree,
/* Start the capability subtree */
ancp_cap_tree = proto_item_add_subtree(sti, ett_ancp_tot_len);
sti = proto_tree_add_item(ancp_cap_tree, hf_ancp_tot_len, tvb,
proto_tree_add_item(ancp_cap_tree, hf_ancp_tot_len, tvb,
offset, 2, FALSE);
tlv_len = tvb_get_ntohs(tvb, offset);
offset += 2;
@ -518,34 +518,34 @@ dissect_ancp_adj_msg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ancp_tree,
tlv_len = tvb_get_ntohs(tvb, offset);
offset += 2;
proto_item_append_text(sti, " (%d bytes)", tlv_len);
proto_item_append_text(sti, " (%d bytes)", tlv_len);
/* TODO - if there are non boolean caps, validate before use */
}
}
static void
static void
ancp_stats_tree_init(stats_tree *st)
{
st_node_packets = stats_tree_create_node(st, st_str_packets, 0, TRUE);
st_node_packet_types = stats_tree_create_pivot(st, st_str_packet_types,
st_node_packet_types = stats_tree_create_pivot(st, st_str_packet_types,
st_node_packets);
st_node_adj_pack_types = stats_tree_create_node(st, st_str_adj_pack_types,
st_node_adj_pack_types = stats_tree_create_node(st, st_str_adj_pack_types,
st_node_packets, TRUE);
}
static int
ancp_stats_tree_packet(stats_tree* st, packet_info* pinfo _U_,
ancp_stats_tree_packet(stats_tree* st, packet_info* pinfo _U_,
epan_dissect_t* edt _U_ , const void* p)
{
struct ancp_tap_t *pi = (struct ancp_tap_t *) p;
tick_stat_node(st, st_str_packets, 0, FALSE);
stats_tree_tick_pivot(st, st_node_packet_types,
val_to_str(pi->ancp_mtype, mtype_names,
val_to_str(pi->ancp_mtype, mtype_names,
"Unknown packet type (%d)"));
if (pi->ancp_mtype == ANCP_MTYPE_ADJ)
if (pi->ancp_mtype == ANCP_MTYPE_ADJ)
stats_tree_tick_pivot(st, st_node_adj_pack_types,
val_to_str(pi->ancp_adjcode, adj_code_names,
val_to_str(pi->ancp_adjcode, adj_code_names,
"Unknown Adjacency packet (%d)"));
return 1;
}
@ -579,21 +579,21 @@ dissect_ancp_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
ti = proto_tree_add_item(tree, proto_ancp, tvb, 0, -1, FALSE);
ancp_tree = proto_item_add_subtree(ti, ett_ancp_len);
offset = 2; /* skip ether type */
sti = proto_tree_add_item(ancp_tree, hf_ancp_len, tvb, offset, 2,
proto_tree_add_item(ancp_tree, hf_ancp_len, tvb, offset, 2,
FALSE);
len = tvb_get_ntohs(tvb, offset);
offset += 2;
sti = proto_tree_add_item(ancp_tree, hf_ancp_ver, tvb, offset, 1,
sti = proto_tree_add_item(ancp_tree, hf_ancp_ver, tvb, offset, 1,
FALSE);
byte = tvb_get_guint8(tvb, offset);
offset += 1;
proto_item_append_text(sti, " (%d.%d)", byte >> 4, byte & 0x0F);
sti = proto_tree_add_item(ancp_tree, hf_ancp_mtype, tvb, offset, 1,
sti = proto_tree_add_item(ancp_tree, hf_ancp_mtype, tvb, offset, 1,
FALSE);
mtype = tvb_get_guint8(tvb, offset); /* ANCP message type */
ancp_info->ancp_mtype = mtype; /* stats */
@ -604,10 +604,10 @@ dissect_ancp_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
if (mtype != ANCP_MTYPE_ADJ) {
/* Dissect common header */
proto_tree_add_item(ancp_tree, hf_ancp_result, tvb, offset, 1,
proto_tree_add_item(ancp_tree, hf_ancp_result, tvb, offset, 1,
FALSE); /* treat as 1B, but dont change offset */
proto_tree_add_item(ancp_tree, hf_ancp_code, tvb, offset, 2,
proto_tree_add_item(ancp_tree, hf_ancp_code, tvb, offset, 2,
FALSE);
offset += 2;
@ -619,29 +619,29 @@ dissect_ancp_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
offset, 3, FALSE);
offset += 3;
proto_tree_add_item(ancp_tree, hf_ancp_i_flag, tvb, offset, 1,
proto_tree_add_item(ancp_tree, hf_ancp_i_flag, tvb, offset, 1,
FALSE); /* treat as 1B, but dont change offset */
sti = proto_tree_add_item(ancp_tree, hf_ancp_submsg_num, tvb,
sti = proto_tree_add_item(ancp_tree, hf_ancp_submsg_num, tvb,
offset, 2, FALSE);
offset += 2;
/*
* Lets not display the 'Length' field now, it is anyway same
/*
* Lets not display the 'Length' field now, it is anyway same
* as GSMP Length
* which we have already displayed at the start of the dissect
*/
offset += 2; /* Length */
}
switch(mtype) {
case ANCP_MTYPE_ADJ:
dissect_ancp_adj_msg(tvb, pinfo, ancp_tree, offset, ancp_info);
break;
case ANCP_MTYPE_PORT_DN:
/* FALL THRU */
/* FALL THRU */
case ANCP_MTYPE_PORT_MGMT:
/* FALL THRU */
/* FALL THRU */
case ANCP_MTYPE_PORT_UP:
dissect_ancp_port_up_dn_mgmt(tvb, ancp_tree, offset);
break;
@ -653,7 +653,7 @@ dissect_ancp_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
tap_queue_packet(ancp_tap, pinfo, ancp_info);
}
static guint
static guint
get_ancp_msg_len(packet_info *pinfo _U_, tvbuff_t *tvb, int offset)
{
return (guint)tvb_get_ntohs(tvb, offset + 2) + 4; /* 2B len + 4B hdr */
@ -779,7 +779,7 @@ proto_register_ancp(void)
NULL, HFILL }
},
{ &hf_ancp_code,
{ "Code", "ancp.code",
{ "Code", "ancp.code",
FT_UINT16, BASE_HEX,
VALS(codetype_names), ANCP_CODE_MASK,
NULL, HFILL }
@ -938,7 +938,7 @@ proto_register_ancp(void)
proto_register_subtree_array(ett, array_length(ett));
ancp_tap = register_tap("ancp");
}
void
proto_reg_handoff_ancp(void)
{
@ -949,4 +949,4 @@ proto_reg_handoff_ancp(void)
stats_tree_register("ancp", "ancp", "ANCP", 0,
ancp_stats_tree_packet, ancp_stats_tree_init, NULL);
}