Fix some more regressions introduced in gecaa1f8

Convert one other set of static variables to pinfo scoped memory while we are at it

Change-Id: If550b76ef6a4dd2707d79de8579ac439d16dce79
Reviewed-on: https://code.wireshark.org/review/6490
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com>
Reviewed-by: Michael Mann <mmann78@netscape.net>
This commit is contained in:
Pascal Quantin 2015-01-11 15:35:08 +01:00 committed by Michael Mann
parent 5855dd8d53
commit c8c9917f81
2 changed files with 33 additions and 36 deletions

View File

@ -1371,14 +1371,15 @@ static void
dissect_ddp_short(tvbuff_t *tvb, packet_info *pinfo, guint8 dnode,
guint8 snode, proto_tree *tree)
{
guint16 len;
guint8 dport;
guint8 sport;
guint8 type;
proto_tree *ddp_tree = NULL;
proto_item *ti, *hidden_item;
static struct atalk_ddp_addr src, dst;
tvbuff_t *new_tvb;
guint16 len;
guint8 dport;
guint8 sport;
guint8 type;
proto_tree *ddp_tree = NULL;
proto_item *ti, *hidden_item;
struct atalk_ddp_addr *src = wmem_new(pinfo->pool, struct atalk_ddp_addr),
*dst = wmem_new(pinfo->pool, struct atalk_ddp_addr);
tvbuff_t *new_tvb;
col_set_str(pinfo->cinfo, COL_PROTOCOL, "DDP");
col_clear(pinfo->cinfo, COL_INFO);
@ -1399,14 +1400,14 @@ dissect_ddp_short(tvbuff_t *tvb, packet_info *pinfo, guint8 dnode,
proto_tree_add_uint(ddp_tree, hf_ddp_src_socket, tvb, 3, 1, sport);
type = tvb_get_guint8(tvb, 4);
src.net = 0;
src.node = snode;
dst.net = 0;
dst.node = dnode;
SET_ADDRESS(&pinfo->net_src, AT_ATALK, sizeof src, (guint8 *)&src);
SET_ADDRESS(&pinfo->src, AT_ATALK, sizeof src, (guint8 *)&src);
SET_ADDRESS(&pinfo->net_dst, AT_ATALK, sizeof dst, (guint8 *)&dst);
SET_ADDRESS(&pinfo->dst, AT_ATALK, sizeof dst, (guint8 *)&dst);
src->net = 0;
src->node = snode;
dst->net = 0;
dst->node = dnode;
SET_ADDRESS(&pinfo->net_src, AT_ATALK, sizeof(struct atalk_ddp_addr), src);
SET_ADDRESS(&pinfo->src, AT_ATALK, sizeof(struct atalk_ddp_addr), src);
SET_ADDRESS(&pinfo->net_dst, AT_ATALK, sizeof(struct atalk_ddp_addr), dst);
SET_ADDRESS(&pinfo->dst, AT_ATALK, sizeof(struct atalk_ddp_addr), dst);
pinfo->ptype = PT_DDP;
pinfo->destport = dport;
@ -1417,10 +1418,10 @@ dissect_ddp_short(tvbuff_t *tvb, packet_info *pinfo, guint8 dnode,
if (tree) {
hidden_item = proto_tree_add_string(ddp_tree, hf_ddp_src, tvb,
4, 3, atalk_addr_to_str(&src));
4, 3, atalk_addr_to_str(src));
PROTO_ITEM_SET_HIDDEN(hidden_item);
hidden_item = proto_tree_add_string(ddp_tree, hf_ddp_dst, tvb,
6, 3, atalk_addr_to_str(&dst));
6, 3, atalk_addr_to_str(dst));
PROTO_ITEM_SET_HIDDEN(hidden_item);
proto_tree_add_uint(ddp_tree, hf_ddp_type, tvb, 4, 1, type);
@ -1434,12 +1435,12 @@ dissect_ddp_short(tvbuff_t *tvb, packet_info *pinfo, guint8 dnode,
static void
dissect_ddp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
e_ddp ddp;
proto_tree *ddp_tree;
proto_item *ti, *hidden_item;
struct atalk_ddp_addr *src = wmem_new(pinfo->pool, struct atalk_ddp_addr),
*dst = wmem_new(pinfo->pool, struct atalk_ddp_addr);
tvbuff_t *new_tvb;
e_ddp ddp;
proto_tree *ddp_tree;
proto_item *ti, *hidden_item;
struct atalk_ddp_addr *src = wmem_new(pinfo->pool, struct atalk_ddp_addr),
*dst = wmem_new(pinfo->pool, struct atalk_ddp_addr);
tvbuff_t *new_tvb;
col_set_str(pinfo->cinfo, COL_PROTOCOL, "DDP");
col_clear(pinfo->cinfo, COL_INFO);
@ -1454,10 +1455,10 @@ dissect_ddp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
src->node = ddp.snode;
dst->net = ddp.dnet;
dst->node = ddp.dnode;
SET_ADDRESS(&pinfo->net_src, AT_ATALK, sizeof src, src);
SET_ADDRESS(&pinfo->src, AT_ATALK, sizeof src, src);
SET_ADDRESS(&pinfo->net_dst, AT_ATALK, sizeof dst, dst);
SET_ADDRESS(&pinfo->dst, AT_ATALK, sizeof dst, dst);
SET_ADDRESS(&pinfo->net_src, AT_ATALK, sizeof(struct atalk_ddp_addr), src);
SET_ADDRESS(&pinfo->src, AT_ATALK, sizeof(struct atalk_ddp_addr), src);
SET_ADDRESS(&pinfo->net_dst, AT_ATALK, sizeof(struct atalk_ddp_addr), dst);
SET_ADDRESS(&pinfo->dst, AT_ATALK, sizeof(struct atalk_ddp_addr), dst);
pinfo->ptype = PT_DDP;
pinfo->destport = ddp.dport;

View File

@ -1918,10 +1918,8 @@ dissect_fid4(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
dst = wmem_new(pinfo->pool, struct sna_fid_type_4_addr);
dst->saf = dsaf;
dst->ef = def;
SET_ADDRESS(&pinfo->net_dst, AT_SNA, SNA_FID_TYPE_4_ADDR_LEN,
(guint8* )&dst);
SET_ADDRESS(&pinfo->dst, AT_SNA, SNA_FID_TYPE_4_ADDR_LEN,
(guint8 *)&dst);
SET_ADDRESS(&pinfo->net_dst, AT_SNA, SNA_FID_TYPE_4_ADDR_LEN, dst);
SET_ADDRESS(&pinfo->dst, AT_SNA, SNA_FID_TYPE_4_ADDR_LEN, dst);
oef = tvb_get_ntohs(tvb, 20);
proto_tree_add_uint(tree, hf_sna_th_oef, tvb, offset+2, 2, oef);
@ -1930,10 +1928,8 @@ dissect_fid4(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
src = wmem_new(pinfo->pool, struct sna_fid_type_4_addr);
src->saf = osaf;
src->ef = oef;
SET_ADDRESS(&pinfo->net_src, AT_SNA, SNA_FID_TYPE_4_ADDR_LEN,
(guint8 *)&src);
SET_ADDRESS(&pinfo->src, AT_SNA, SNA_FID_TYPE_4_ADDR_LEN,
(guint8 *)&src);
SET_ADDRESS(&pinfo->net_src, AT_SNA, SNA_FID_TYPE_4_ADDR_LEN, src);
SET_ADDRESS(&pinfo->src, AT_SNA, SNA_FID_TYPE_4_ADDR_LEN, src);
proto_tree_add_item(tree, hf_sna_th_snf, tvb, offset+4, 2, ENC_BIG_ENDIAN);
proto_tree_add_item(tree, hf_sna_th_dcf, tvb, offset+6, 2, ENC_BIG_ENDIAN);