diff options
author | Ronnie Sahlberg <ronnie_sahlberg@ozemail.com.au> | 2006-09-23 13:21:54 +0000 |
---|---|---|
committer | Ronnie Sahlberg <ronnie_sahlberg@ozemail.com.au> | 2006-09-23 13:21:54 +0000 |
commit | 5c2232dc2255d442b34053c1c7d4343c1d527630 (patch) | |
tree | 3f00acffddbff2016e61041e6e648895f2213e73 /epan/dissectors/packet-dcerpc.c | |
parent | 4c6484334cf5076c631e00feff1f993075c756de (diff) |
replace a rotating buffer in smb with ep allocated memory
dont try dcerpc reassembly of fragments if we dont have the entire pdu
only call the heuristical dissectors once from smb/pipe as per guy(?)s comments about idempotence.
when doing reassembly, the dcerpc dissector is indeed not idempotent any more.
svn path=/trunk/; revision=19304
Diffstat (limited to 'epan/dissectors/packet-dcerpc.c')
-rw-r--r-- | epan/dissectors/packet-dcerpc.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/epan/dissectors/packet-dcerpc.c b/epan/dissectors/packet-dcerpc.c index dec7fb3c25..cefde5570a 100644 --- a/epan/dissectors/packet-dcerpc.c +++ b/epan/dissectors/packet-dcerpc.c @@ -2996,7 +2996,7 @@ dissect_dcerpc_cn_stub (tvbuff_t *tvb, int offset, packet_info *pinfo, nor the first fragment then there is nothing more we can do so we just have to exit */ - if( !dcerpc_reassemble ) + if( !dcerpc_reassemble || (tvb_length(tvb)!=tvb_reported_length(tvb)) ) goto end_cn_stub; /* if we didnt get 'frame' we dont know where the PDU started and thus @@ -3022,9 +3022,9 @@ dissect_dcerpc_cn_stub (tvbuff_t *tvb, int offset, packet_info *pinfo, /* defragmentation is a bit tricky, as there's no offset of the fragment * in the protocol data. * - * just use fragment_add_seq_next() and hope that TCP/SMB segments coming - * in with the correct sequence. - */ + * just use fragment_add_seq_next() and hope that TCP/SMB segments coming + * in with the correct sequence. + */ fd_head = fragment_add_seq_next(decrypted_tvb, 0, pinfo, frame, dcerpc_co_fragment_table, dcerpc_co_reassemble_table, tvb_length(decrypted_tvb), |