add extra sanity check.

dont match a request with a reply that came earlier in the trace or SRT will
look funny :-)



svn path=/trunk/; revision=13409
This commit is contained in:
Ronnie Sahlberg 2005-02-16 00:19:52 +00:00
parent e8a4830bad
commit 1d8e70b969
1 changed files with 10 additions and 6 deletions

View File

@ -3373,12 +3373,16 @@ dissect_dcerpc_cn_resp (tvbuff_t *tvb, gint offset, packet_info *pinfo,
call_key.smb_fid=dcerpc_get_transport_salt(pinfo, transport_type);
if((call_value=g_hash_table_lookup(dcerpc_cn_calls, &call_key))){
new_matched_key = g_mem_chunk_alloc(dcerpc_matched_key_chunk);
*new_matched_key = matched_key;
g_hash_table_insert (dcerpc_matched, new_matched_key, call_value);
value = call_value;
if(call_value->rep_frame==0){
call_value->rep_frame=pinfo->fd->num;
/* extra sanity check, only match them if the reply
came after the request */
if(call_value->req_frame<pinfo->fd->num){
new_matched_key = g_mem_chunk_alloc(dcerpc_matched_key_chunk);
*new_matched_key = matched_key;
g_hash_table_insert (dcerpc_matched, new_matched_key, call_value);
value = call_value;
if(call_value->rep_frame==0){
call_value->rep_frame=pinfo->fd->num;
}
}
}
}