From e55197d10343c39f08596de0d6758d9d3a7adeca Mon Sep 17 00:00:00 2001 From: Victor Julien Date: Wed, 15 Apr 2026 12:05:06 +0200 Subject: [PATCH] detect/snmp: let generic keyword share the same list (cherry picked from commit 2cef1404bc827ad0b3562a0a5e66d4ce37b1265e) --- rust/src/snmp/detect.rs | 34 ++++++++++------------------------ 1 file changed, 10 insertions(+), 24 deletions(-) diff --git a/rust/src/snmp/detect.rs b/rust/src/snmp/detect.rs index 34782e92e2..d91c646c95 100644 --- a/rust/src/snmp/detect.rs +++ b/rust/src/snmp/detect.rs @@ -36,13 +36,11 @@ use suricata_sys::sys::{ }; static mut G_SNMP_VERSION_KW_ID: u16 = 0; -static mut G_SNMP_VERSION_BUFFER_ID: c_int = 0; static mut G_SNMP_PDUTYPE_KW_ID: u16 = 0; -static mut G_SNMP_PDUTYPE_BUFFER_ID: c_int = 0; static mut G_SNMP_USM_BUFFER_ID: c_int = 0; static mut G_SNMP_COMMUNITY_BUFFER_ID: c_int = 0; static mut G_SNMP_TRAPTYPE_KW_ID: u16 = 0; -static mut G_SNMP_TRAPTYPE_BUFFER_ID: c_int = 0; +static mut G_SNMP_GENERIC_BUFFER_ID: c_int = 0; unsafe extern "C" fn snmp_detect_version_setup( de: *mut DetectEngineCtx, s: *mut Signature, raw: *const libc::c_char, @@ -59,7 +57,7 @@ unsafe extern "C" fn snmp_detect_version_setup( s, G_SNMP_VERSION_KW_ID, ctx as *mut SigMatchCtx, - G_SNMP_VERSION_BUFFER_ID, + G_SNMP_GENERIC_BUFFER_ID, ) .is_null() { @@ -125,7 +123,7 @@ unsafe extern "C" fn snmp_detect_traptype_setup( s, G_SNMP_TRAPTYPE_KW_ID, ctx as *mut SigMatchCtx, - G_SNMP_TRAPTYPE_BUFFER_ID, + G_SNMP_GENERIC_BUFFER_ID, ) .is_null() { @@ -170,7 +168,7 @@ unsafe extern "C" fn snmp_detect_pdutype_setup( s, G_SNMP_PDUTYPE_KW_ID, ctx as *mut SigMatchCtx, - G_SNMP_PDUTYPE_BUFFER_ID, + G_SNMP_GENERIC_BUFFER_ID, ) .is_null() { @@ -248,6 +246,12 @@ unsafe extern "C" fn snmp_detect_community_get_data( } pub(super) unsafe extern "C" fn detect_snmp_register() { + G_SNMP_GENERIC_BUFFER_ID = SCDetectHelperBufferProgressRegister( + b"snmp.generic\0".as_ptr() as *const libc::c_char, + ALPROTO_SNMP, + STREAM_TOSERVER | STREAM_TOCLIENT, + 1, + ); let kw = SCSigTableAppLiteElmt { name: b"snmp.version\0".as_ptr() as *const libc::c_char, desc: b"match SNMP version\0".as_ptr() as *const libc::c_char, @@ -258,12 +262,6 @@ pub(super) unsafe extern "C" fn detect_snmp_register() { flags: SIGMATCH_SUPPORT_FIREWALL, }; G_SNMP_VERSION_KW_ID = SCDetectHelperKeywordRegister(&kw); - G_SNMP_VERSION_BUFFER_ID = SCDetectHelperBufferProgressRegister( - b"snmp.version\0".as_ptr() as *const libc::c_char, - ALPROTO_SNMP, - STREAM_TOSERVER | STREAM_TOCLIENT, - 1, - ); let kw = SCSigTableAppLiteElmt { name: b"snmp.pdu_type\0".as_ptr() as *const libc::c_char, @@ -275,12 +273,6 @@ pub(super) unsafe extern "C" fn detect_snmp_register() { flags: SIGMATCH_SUPPORT_FIREWALL, }; G_SNMP_PDUTYPE_KW_ID = SCDetectHelperKeywordRegister(&kw); - G_SNMP_PDUTYPE_BUFFER_ID = SCDetectHelperBufferProgressRegister( - b"snmp.pdu_type\0".as_ptr() as *const libc::c_char, - ALPROTO_SNMP, - STREAM_TOSERVER | STREAM_TOCLIENT, - 1, - ); let kw = SigTableElmtStickyBuffer { name: String::from("snmp.usm"), @@ -324,10 +316,4 @@ pub(super) unsafe extern "C" fn detect_snmp_register() { flags: SIGMATCH_SUPPORT_FIREWALL, }; G_SNMP_TRAPTYPE_KW_ID = SCDetectHelperKeywordRegister(&kw); - G_SNMP_TRAPTYPE_BUFFER_ID = SCDetectHelperBufferProgressRegister( - b"snmp.trap_type\0".as_ptr() as *const libc::c_char, - ALPROTO_SNMP, - STREAM_TOSERVER | STREAM_TOCLIENT, - 1, - ); }