PegCount v2_crt_rtrkr_misng;
PegCount v2_crt_req_ipc;
PegCount v2_crt_tree_trkr_misng;
+ PegCount v2_crt_rtrkr_ins_fail;
PegCount v2_wrt;
PegCount v2_wrt_err_resp;
PegCount v2_wrt_ignored;
auto rtracker = new DCE2_Smb2RequestTracker(file_name, name_len);
rtracker->set_session_id(str->session_id);
rtracker->set_tree_id(ttr->get_tid());
- ssd->insertRtracker(mid, rtracker);
+ if (!ssd->insertRtracker(mid, rtracker))
+ {
+ dce2_smb_stats.v2_crt_rtrkr_ins_fail++;
+ SMB_DEBUG(dce_smb_trace, DEFAULT_TRACE_OPTION_ID, TRACE_ERROR_LEVEL,
+ DetectionEngine::get_current_packet(),
+ "%s_REQ: insert req tracker failed for mid %" PRIx64 "\n",
+ smb2_command_string[SMB2_COM_CREATE], mid);
+ delete rtracker;
+ return;
+ }
uint64_t file_id = 0;
if (DCE2_IsSmb2DurableReconnect(smb_create_hdr, end, file_id))
{
"total number of SMBv2 create request packets ignored as share type is IPC" },
{ CountType::SUM, "v2_crt_tree_trkr_misng",
"total number of SMBv2 create response packets ignored due to missing tree tracker" },
+ { CountType::SUM, "v2_crt_rtrkr_ins_fail",
+ "total number of SMBv2 create request packets failed due to request tracker insert failure" },
{ CountType::SUM, "v2_wrt", "total number of SMBv2 write packets seen" },
{ CountType::SUM, "v2_wrt_err_resp", "total number of SMBv2 write error response packets seen" },
{ CountType::SUM, "v2_wrt_ignored",