From: JITHENDIRAN EASWARAMURTHY KOUSALYA Date: Fri, 10 Apr 2026 11:10:29 +0000 (+0530) Subject: dce_rpc: close command memory leak fix X-Git-Tag: 3.12.2.0~12 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=04c28fe55aa1da8b63bc445ddd87304bd00d66ef;p=thirdparty%2Fsnort3.git dce_rpc: close command memory leak fix --- diff --git a/src/service_inspectors/dce_rpc/dce_smb.h b/src/service_inspectors/dce_rpc/dce_smb.h index f2265daf3..3ea59ffd1 100644 --- a/src/service_inspectors/dce_rpc/dce_smb.h +++ b/src/service_inspectors/dce_rpc/dce_smb.h @@ -226,6 +226,7 @@ struct dce2SmbStats : public LruCacheLocalStats PegCount v2_cls_inv_str_sz; PegCount v2_cls_req_ftrkr_misng; PegCount v2_cls_req_hdr_err; + PegCount v2_cls_rtrkr_ins_fail; PegCount v2_tree_discn; PegCount v2_tree_discn_ignored; PegCount v2_tree_discn_inv_str_sz; diff --git a/src/service_inspectors/dce_rpc/dce_smb2_commands.cc b/src/service_inspectors/dce_rpc/dce_smb2_commands.cc index f18c1ff54..5e0178947 100644 --- a/src/service_inspectors/dce_rpc/dce_smb2_commands.cc +++ b/src/service_inspectors/dce_rpc/dce_smb2_commands.cc @@ -665,7 +665,15 @@ void DCE2_Smb2CloseCmd(DCE2_Smb2SsnData* ssd, const Smb2Hdr* smb_hdr, auto rtracker = new DCE2_Smb2RequestTracker(fileId_persistent); 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_cls_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_CLOSE], mid); + delete rtracker; + } } if (SMB2_SHARE_TYPE_DISK == ttr->get_share_type() and !ftracker->ignore diff --git a/src/service_inspectors/dce_rpc/dce_smb_module.cc b/src/service_inspectors/dce_rpc/dce_smb_module.cc index 9df39f070..74f7fd02d 100644 --- a/src/service_inspectors/dce_rpc/dce_smb_module.cc +++ b/src/service_inspectors/dce_rpc/dce_smb_module.cc @@ -147,6 +147,8 @@ static const PegInfo dce2_smb_pegs[] = "total number of SMBv2 close request packets ignored due to missing file tracker" }, { CountType::SUM, "v2_cls_req_hdr_err", "total number of SMBv2 close request packets ignored due to corrupted header" }, + { CountType::SUM, "v2_cls_rtrkr_ins_fail", + "total number of SMBv2 close request packets failed due to request tracker insert failure" }, { CountType::SUM, "v2_tree_discn", "total number of SMBv2 tree disconnect packets seen" }, { CountType::SUM, "v2_tree_discn_ignored",