From aa43cd779c2a321ae3a3b52675b6e4b919c1594b Mon Sep 17 00:00:00 2001 From: Guy Harris Date: Fri, 28 Feb 2003 03:00:59 +0000 Subject: [PATCH] Don't offer desegmentation to DCERPC if we have a short or fragmented packet. svn path=/trunk/; revision=7217 --- packet-smb-pipe.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/packet-smb-pipe.c b/packet-smb-pipe.c index be9e6c3bdf..abafeaef95 100644 --- a/packet-smb-pipe.c +++ b/packet-smb-pipe.c @@ -8,7 +8,7 @@ XXX Fixme : shouldnt show [malformed frame] for long packets * significant rewrite to tvbuffify the dissector, Ronnie Sahlberg and * Guy Harris 2001 * - * $Id: packet-smb-pipe.c,v 1.87 2003/02/20 07:55:00 guy Exp $ + * $Id: packet-smb-pipe.c,v 1.88 2003/02/28 03:00:59 guy Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -3209,11 +3209,16 @@ dissect_pipe_dcerpc(tvbuff_t *d_tvb, packet_info *pinfo, proto_tree *parent_tree pinfo->private_data = &dcerpc_priv; - /* offer desegmentation service to DCERPC */ + /* + * Offer desegmentation service to DCERPC if this packet + * isn't fragmented or short. Otherwise, reassembly is + * (probably) impossible. + */ pinfo->can_desegment=0; pinfo->desegment_offset = 0; pinfo->desegment_len = 0; - if(smb_dcerpc_reassembly){ + if(smb_dcerpc_reassembly && !pinfo->fragmented && + tvb_length(d_tvb) >= tvb_reported_length(d_tvb)){ pinfo->can_desegment=2; }