summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPascal Quantin <pascal.quantin@gmail.com>2015-01-11 15:35:08 +0100
committerMichael Mann <mmann78@netscape.net>2015-01-11 19:12:43 +0000
commitc8c9917f81a469e866e07448bee39732556df701 (patch)
tree056125b794b565c25464ae029bced627591dd9e0
parent5855dd8d538eb81d4825961b1bf0d583bf96f751 (diff)
downloadwireshark-c8c9917f81a469e866e07448bee39732556df701.tar.gz
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>
-rw-r--r--epan/dissectors/packet-atalk.c57
-rw-r--r--epan/dissectors/packet-sna.c12
2 files changed, 33 insertions, 36 deletions
diff --git a/epan/dissectors/packet-atalk.c b/epan/dissectors/packet-atalk.c
index 7b873cdad1..a2b3709aaa 100644
--- a/epan/dissectors/packet-atalk.c
+++ b/epan/dissectors/packet-atalk.c
@@ -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;
diff --git a/epan/dissectors/packet-sna.c b/epan/dissectors/packet-sna.c
index 09ba02c6e6..aecad883ab 100644
--- a/epan/dissectors/packet-sna.c
+++ b/epan/dissectors/packet-sna.c
@@ -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);