aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-dcerpc.c
diff options
context:
space:
mode:
authorsahlberg <sahlberg@f5534014-38df-0310-8fa8-9805f1628bb7>2006-11-21 21:11:18 +0000
committersahlberg <sahlberg@f5534014-38df-0310-8fa8-9805f1628bb7>2006-11-21 21:11:18 +0000
commit5521b3001b52e03db0d484fd9a9e792c1ea99a06 (patch)
tree7af886ec6ccd2b5e100dd15d68ea4d5397cd8adc /epan/dissectors/packet-dcerpc.c
parent7fed36982c63ae4db577826aecefddb73817760f (diff)
fix for bug 1226:
reported by Benjamin Meyer WireShark marks DCE RPC FACKs as "malformed" if they do not have a body. According to DCE RPC Spec. 1.1 FACKs "may contain" a body PTU. I am unable to build WireShark (lack of time to install all neccessary stuff) but I looked at the SourceCode. I think, at least this has to be fixed: file: epan/dissectors/packet-dcerpc.c function: static gboolean dissect_dcerpc_dg (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) *snip* case PDU_FACK dissect_dcerpc_dg_fack (tvb, offset, pinfo, dcerpc_tree, &hdr); break; *snap* I guess, it should look like "case PDU_NOCALL:" directly above. git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@19952 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'epan/dissectors/packet-dcerpc.c')
-rw-r--r--epan/dissectors/packet-dcerpc.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/epan/dissectors/packet-dcerpc.c b/epan/dissectors/packet-dcerpc.c
index 86b5e8aa0c..e50d82f605 100644
--- a/epan/dissectors/packet-dcerpc.c
+++ b/epan/dissectors/packet-dcerpc.c
@@ -4981,7 +4981,10 @@ dissect_dcerpc_dg (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
break;
case PDU_FACK:
- dissect_dcerpc_dg_fack (tvb, offset, pinfo, dcerpc_tree, &hdr);
+ /* Body is optional */
+ /* XXX - we assume "frag_len" is the length of the body */
+ if (hdr.frag_len != 0)
+ dissect_dcerpc_dg_fack (tvb, offset, pinfo, dcerpc_tree, &hdr);
break;
case PDU_REJECT: