aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-mq.c
diff options
context:
space:
mode:
authorstig <stig@f5534014-38df-0310-8fa8-9805f1628bb7>2009-05-19 17:16:14 +0000
committerstig <stig@f5534014-38df-0310-8fa8-9805f1628bb7>2009-05-19 17:16:14 +0000
commit6ce6394a26aa87eb0b4b95ecd4725ef817a52612 (patch)
treec1f708812bd86cb9a2f2df53f0f5db677b603f40 /epan/dissectors/packet-mq.c
parente35b80409e2c1126a3470ef580f546d6c719bab5 (diff)
From Artem Tamazov (bug 3472):
Save/Restore pinfo->private_data when used. git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@28412 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'epan/dissectors/packet-mq.c')
-rw-r--r--epan/dissectors/packet-mq.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/epan/dissectors/packet-mq.c b/epan/dissectors/packet-mq.c
index a891f04d23..a197968de3 100644
--- a/epan/dissectors/packet-mq.c
+++ b/epan/dissectors/packet-mq.c
@@ -2260,15 +2260,18 @@ dissect_mq_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
/* Call subdissector for the payload */
tvbuff_t* next_tvb = NULL;
+ void* pd_save;
struct mqinfo mqinfo;
/* Format, encoding and character set are "data type" information, not subprotocol information */
mqinfo.encoding = tvb_get_guint32_endian(tvb, tMsgProps.iOffsetEncoding, bLittleEndian);
mqinfo.ccsid = tvb_get_guint32_endian(tvb, tMsgProps.iOffsetCcsid, bLittleEndian);
tvb_memcpy(tvb, mqinfo.format, tMsgProps.iOffsetFormat, 8);
+ pd_save = pinfo->private_data;
pinfo->private_data = &mqinfo;
next_tvb = tvb_new_subset(tvb, offset, -1, -1);
if (!dissector_try_heuristic(mq_heur_subdissector_list, next_tvb, pinfo, tree))
call_dissector(data_handle, next_tvb, pinfo, tree);
+ pinfo->private_data = pd_save;
}
}
offset = tvb_length(tvb);