if (smb_info->sip->extra_info_type == SMB_EI_TRI)
trp = smb_info->sip->extra_info;
-
+
level = tvb_get_letohs(tvb, offset);
if (!pinfo->fd->flags.visited)
if (trp)
/* below this line, we know we are doing reassembly */
-
+
/*
* We have to keep track of reassemblies by FID, because
* we could have more than one pipe operation in a frame
* tree; that's not necessarily the case.
*/
result = dissector_try_heuristic(smb_transact_heur_subdissector_list, d_tvb, pinfo, NULL);
-
+
/* no this didnt look like something we know */
if(!result){
goto clean_up_and_exit;
dcerpc_reassembled_table, 0, 0, TRUE);
if(!fd_head){
/* we didnt find it, try any of the heuristic dissectors
- and bail out
+ and bail out
*/
result = dissector_try_heuristic(smb_transact_heur_subdissector_list, d_tvb, pinfo, parent_tree);
goto clean_up_and_exit;
/* dissect the full PDU */
result = dissector_try_heuristic(smb_transact_heur_subdissector_list, d_tvb, pinfo, parent_tree);
-
+
clean_up_and_exit:
trans_subcmd=PIPE_DCERPC;
}
- if (!pinfo->fd->flags.visited)
+ if (!pinfo->fd->flags.visited) {
+ if (tri == NULL)
+ return FALSE;
tri->trans_subcmd = trans_subcmd;
+ }
} else {
- if(tri){
- trans_subcmd = tri->trans_subcmd;
- } else {
+ if(tri == NULL)
return FALSE;
- }
+ trans_subcmd = tri->trans_subcmd;
}
if (tri == NULL) {