From c960b7d7c178183150145f867e3d97fb2cea0635 Mon Sep 17 00:00:00 2001 From: Philippe Antoine Date: Thu, 8 Jan 2026 10:20:15 +0100 Subject: [PATCH] app-layer: AppLayerParserFPtr uses a mut pointer to local storage So, fix the fn prototype in rust ParseFn --- doc/userguide/devguide/extending/app-layer/parser.rst | 2 +- examples/plugins/altemplate/src/template.rs | 4 ++-- rust/src/applayer.rs | 2 +- rust/src/applayertemplate/template.rs | 4 ++-- rust/src/bittorrent_dht/bittorrent_dht.rs | 6 +++--- rust/src/dcerpc/dcerpc.rs | 4 ++-- rust/src/dcerpc/dcerpc_udp.rs | 2 +- rust/src/dhcp/dhcp.rs | 2 +- rust/src/dns/dns.rs | 8 ++++---- rust/src/enip/enip.rs | 8 ++++---- rust/src/http2/http2.rs | 4 ++-- rust/src/ike/ike.rs | 4 ++-- rust/src/krb/krb5.rs | 8 ++++---- rust/src/ldap/ldap.rs | 8 ++++---- rust/src/modbus/modbus.rs | 4 ++-- rust/src/mqtt/mqtt.rs | 4 ++-- rust/src/nfs/nfs.rs | 8 ++++---- rust/src/ntp/ntp.rs | 4 ++-- rust/src/pgsql/pgsql.rs | 4 ++-- rust/src/pop3/pop3.rs | 4 ++-- rust/src/quic/quic.rs | 4 ++-- rust/src/rdp/rdp.rs | 4 ++-- rust/src/rfb/rfb.rs | 4 ++-- rust/src/sip/sip.rs | 8 ++++---- rust/src/smb/smb.rs | 4 ++-- rust/src/snmp/snmp.rs | 4 ++-- rust/src/ssh/ssh.rs | 4 ++-- rust/src/telnet/telnet.rs | 4 ++-- rust/src/websocket/websocket.rs | 4 ++-- 29 files changed, 67 insertions(+), 67 deletions(-) diff --git a/doc/userguide/devguide/extending/app-layer/parser.rst b/doc/userguide/devguide/extending/app-layer/parser.rst index b8d7da350c..2855d1db76 100644 --- a/doc/userguide/devguide/extending/app-layer/parser.rst +++ b/doc/userguide/devguide/extending/app-layer/parser.rst @@ -38,7 +38,7 @@ In Rust, the callbacks are similar. _pstate: *mut AppLayerParserState, input: *const u8, input_len: u32, - _data: *const std::os::raw::c_void, + _data: *mut std::os::raw::c_void, _flags: u8) -> AppLayerResult diff --git a/examples/plugins/altemplate/src/template.rs b/examples/plugins/altemplate/src/template.rs index c1cc316f31..261cab741d 100644 --- a/examples/plugins/altemplate/src/template.rs +++ b/examples/plugins/altemplate/src/template.rs @@ -300,7 +300,7 @@ unsafe extern "C" fn template_state_tx_free(state: *mut c_void, tx_id: u64) { unsafe extern "C" fn template_parse_request( _flow: *mut Flow, state: *mut c_void, pstate: *mut AppLayerParserState, - stream_slice: StreamSlice, _data: *const c_void, + stream_slice: StreamSlice, _data: *mut c_void, ) -> AppLayerResult { let eof = SCAppLayerParserStateIssetFlag(pstate, APP_LAYER_PARSER_EOF_TS) > 0; @@ -324,7 +324,7 @@ unsafe extern "C" fn template_parse_request( unsafe extern "C" fn template_parse_response( _flow: *mut Flow, state: *mut c_void, pstate: *mut AppLayerParserState, - stream_slice: StreamSlice, _data: *const c_void, + stream_slice: StreamSlice, _data: *mut c_void, ) -> AppLayerResult { let _eof = SCAppLayerParserStateIssetFlag(pstate, APP_LAYER_PARSER_EOF_TC) > 0; let state = cast_pointer!(state, TemplateState); diff --git a/rust/src/applayer.rs b/rust/src/applayer.rs index 20aca8d6ae..8a866746b6 100644 --- a/rust/src/applayer.rs +++ b/rust/src/applayer.rs @@ -495,7 +495,7 @@ pub type ParseFn = unsafe extern "C" fn (flow: *mut Flow, state: *mut c_void, pstate: *mut AppLayerParserState, stream_slice: StreamSlice, - data: *const c_void) -> AppLayerResult; + data: *mut c_void) -> AppLayerResult; pub type ProbeFn = unsafe extern "C" fn (flow: *const Flow, flags: u8, input:*const u8, input_len: u32, rdir: *mut u8) -> AppProto; pub type StateAllocFn = unsafe extern "C" fn (*mut c_void, AppProto) -> *mut c_void; pub type StateFreeFn = unsafe extern "C" fn (*mut c_void); diff --git a/rust/src/applayertemplate/template.rs b/rust/src/applayertemplate/template.rs index 950f1f6638..6dd5f711f1 100644 --- a/rust/src/applayertemplate/template.rs +++ b/rust/src/applayertemplate/template.rs @@ -289,7 +289,7 @@ unsafe extern "C" fn template_state_tx_free(state: *mut c_void, tx_id: u64) { unsafe extern "C" fn template_parse_request( _flow: *mut Flow, state: *mut c_void, pstate: *mut AppLayerParserState, - stream_slice: StreamSlice, _data: *const c_void, + stream_slice: StreamSlice, _data: *mut c_void, ) -> AppLayerResult { let eof = SCAppLayerParserStateIssetFlag(pstate, APP_LAYER_PARSER_EOF_TS) > 0; @@ -313,7 +313,7 @@ unsafe extern "C" fn template_parse_request( unsafe extern "C" fn template_parse_response( _flow: *mut Flow, state: *mut c_void, pstate: *mut AppLayerParserState, - stream_slice: StreamSlice, _data: *const c_void, + stream_slice: StreamSlice, _data: *mut c_void, ) -> AppLayerResult { let _eof = SCAppLayerParserStateIssetFlag(pstate, APP_LAYER_PARSER_EOF_TC) > 0; let state = cast_pointer!(state, TemplateState); diff --git a/rust/src/bittorrent_dht/bittorrent_dht.rs b/rust/src/bittorrent_dht/bittorrent_dht.rs index ce58cd6b7a..0d3e6c02bd 100644 --- a/rust/src/bittorrent_dht/bittorrent_dht.rs +++ b/rust/src/bittorrent_dht/bittorrent_dht.rs @@ -149,7 +149,7 @@ unsafe extern "C" fn state_tx_free(state: *mut std::os::raw::c_void, tx_id: u64) unsafe extern "C" fn parse_ts( _flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState, - stream_slice: StreamSlice, _data: *const std::os::raw::c_void, + stream_slice: StreamSlice, _data: *mut std::os::raw::c_void, ) -> AppLayerResult { return parse( _flow, @@ -163,7 +163,7 @@ unsafe extern "C" fn parse_ts( unsafe extern "C" fn parse_tc( _flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState, - stream_slice: StreamSlice, _data: *const std::os::raw::c_void, + stream_slice: StreamSlice, _data: *mut std::os::raw::c_void, ) -> AppLayerResult { return parse( _flow, @@ -177,7 +177,7 @@ unsafe extern "C" fn parse_tc( unsafe extern "C" fn parse( _flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState, - stream_slice: StreamSlice, _data: *const std::os::raw::c_void, direction: Direction, + stream_slice: StreamSlice, _data: *mut std::os::raw::c_void, direction: Direction, ) -> AppLayerResult { let state = cast_pointer!(state, BitTorrentDHTState); let buf = stream_slice.as_slice(); diff --git a/rust/src/dcerpc/dcerpc.rs b/rust/src/dcerpc/dcerpc.rs index 92a1ed446f..ab15e43b06 100644 --- a/rust/src/dcerpc/dcerpc.rs +++ b/rust/src/dcerpc/dcerpc.rs @@ -945,7 +945,7 @@ fn evaluate_stub_params( unsafe extern "C" fn parse_request( flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState, stream_slice: StreamSlice, - _data: *const std::os::raw::c_void, + _data: *mut std::os::raw::c_void, ) -> AppLayerResult { let state = cast_pointer!(state, DCERPCState); let flags = stream_slice.flags(); @@ -969,7 +969,7 @@ unsafe extern "C" fn parse_request( unsafe extern "C" fn parse_response( flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState, stream_slice: StreamSlice, - _data: *const std::os::raw::c_void, + _data: *mut std::os::raw::c_void, ) -> AppLayerResult { let state = cast_pointer!(state, DCERPCState); let flags = stream_slice.flags(); diff --git a/rust/src/dcerpc/dcerpc_udp.rs b/rust/src/dcerpc/dcerpc_udp.rs index 949ed2063f..d90a934119 100644 --- a/rust/src/dcerpc/dcerpc_udp.rs +++ b/rust/src/dcerpc/dcerpc_udp.rs @@ -248,7 +248,7 @@ impl DCERPCUDPState { unsafe extern "C" fn parse( _flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState, stream_slice: StreamSlice, - _data: *const std::os::raw::c_void, + _data: *mut std::os::raw::c_void, ) -> AppLayerResult { let state = cast_pointer!(state, DCERPCUDPState); if !stream_slice.is_gap() { diff --git a/rust/src/dhcp/dhcp.rs b/rust/src/dhcp/dhcp.rs index e97eee9a20..731e78b9a8 100644 --- a/rust/src/dhcp/dhcp.rs +++ b/rust/src/dhcp/dhcp.rs @@ -228,7 +228,7 @@ unsafe extern "C" fn dhcp_state_get_tx_count(state: *mut std::os::raw::c_void) - unsafe extern "C" fn dhcp_parse( _flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState, - stream_slice: StreamSlice, _data: *const std::os::raw::c_void, + stream_slice: StreamSlice, _data: *mut std::os::raw::c_void, ) -> AppLayerResult { let state = cast_pointer!(state, DHCPState); if state.parse(stream_slice.as_slice()) { diff --git a/rust/src/dns/dns.rs b/rust/src/dns/dns.rs index 190591c384..34efc661f6 100644 --- a/rust/src/dns/dns.rs +++ b/rust/src/dns/dns.rs @@ -938,7 +938,7 @@ pub(crate) unsafe extern "C" fn state_tx_free(state: *mut std::os::raw::c_void, /// C binding parse a DNS request. Returns 1 on success, -1 on failure. pub(crate) unsafe extern "C" fn parse_request( flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState, - stream_slice: StreamSlice, _data: *const std::os::raw::c_void, + stream_slice: StreamSlice, _data: *mut std::os::raw::c_void, ) -> AppLayerResult { let state = cast_pointer!(state, DNSState); state.parse_request_udp(flow, stream_slice); @@ -947,7 +947,7 @@ pub(crate) unsafe extern "C" fn parse_request( unsafe extern "C" fn parse_response( flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState, - stream_slice: StreamSlice, _data: *const std::os::raw::c_void, + stream_slice: StreamSlice, _data: *mut std::os::raw::c_void, ) -> AppLayerResult { let state = cast_pointer!(state, DNSState); state.parse_response_udp(flow, stream_slice); @@ -957,7 +957,7 @@ unsafe extern "C" fn parse_response( /// C binding parse a DNS request. Returns 1 on success, -1 on failure. unsafe extern "C" fn parse_request_tcp( flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState, - stream_slice: StreamSlice, _data: *const std::os::raw::c_void, + stream_slice: StreamSlice, _data: *mut std::os::raw::c_void, ) -> AppLayerResult { let state = cast_pointer!(state, DNSState); if stream_slice.is_gap() { @@ -970,7 +970,7 @@ unsafe extern "C" fn parse_request_tcp( unsafe extern "C" fn parse_response_tcp( flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState, - stream_slice: StreamSlice, _data: *const std::os::raw::c_void, + stream_slice: StreamSlice, _data: *mut std::os::raw::c_void, ) -> AppLayerResult { let state = cast_pointer!(state, DNSState); if stream_slice.is_gap() { diff --git a/rust/src/enip/enip.rs b/rust/src/enip/enip.rs index 28e25543d7..ca0f9db33c 100644 --- a/rust/src/enip/enip.rs +++ b/rust/src/enip/enip.rs @@ -498,7 +498,7 @@ unsafe extern "C" fn enip_state_tx_free(state: *mut c_void, tx_id: u64) { unsafe extern "C" fn enip_parse_request_udp( flow: *mut Flow, state: *mut c_void, _pstate: *mut AppLayerParserState, - stream_slice: StreamSlice, _data: *const c_void, + stream_slice: StreamSlice, _data: *mut c_void, ) -> AppLayerResult { let state = cast_pointer!(state, EnipState); state.parse_udp(stream_slice, true, flow) @@ -506,7 +506,7 @@ unsafe extern "C" fn enip_parse_request_udp( unsafe extern "C" fn enip_parse_response_udp( flow: *mut Flow, state: *mut c_void, _pstate: *mut AppLayerParserState, - stream_slice: StreamSlice, _data: *const c_void, + stream_slice: StreamSlice, _data: *mut c_void, ) -> AppLayerResult { let state = cast_pointer!(state, EnipState); state.parse_udp(stream_slice, false, flow) @@ -514,7 +514,7 @@ unsafe extern "C" fn enip_parse_response_udp( unsafe extern "C" fn enip_parse_request_tcp( flow: *mut Flow, state: *mut c_void, pstate: *mut AppLayerParserState, - stream_slice: StreamSlice, _data: *const c_void, + stream_slice: StreamSlice, _data: *mut c_void, ) -> AppLayerResult { let eof = SCAppLayerParserStateIssetFlag(pstate, APP_LAYER_PARSER_EOF_TS) > 0; if eof { @@ -533,7 +533,7 @@ unsafe extern "C" fn enip_parse_request_tcp( unsafe extern "C" fn enip_parse_response_tcp( flow: *mut Flow, state: *mut c_void, pstate: *mut AppLayerParserState, - stream_slice: StreamSlice, _data: *const c_void, + stream_slice: StreamSlice, _data: *mut c_void, ) -> AppLayerResult { let eof = SCAppLayerParserStateIssetFlag(pstate, APP_LAYER_PARSER_EOF_TC) > 0; if eof { diff --git a/rust/src/http2/http2.rs b/rust/src/http2/http2.rs index 01406b1e3b..77c41547ef 100644 --- a/rust/src/http2/http2.rs +++ b/rust/src/http2/http2.rs @@ -1463,7 +1463,7 @@ unsafe extern "C" fn http2_state_tx_free(state: *mut std::os::raw::c_void, tx_id unsafe extern "C" fn http2_parse_ts( flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState, - stream_slice: StreamSlice, _data: *const std::os::raw::c_void, + stream_slice: StreamSlice, _data: *mut std::os::raw::c_void, ) -> AppLayerResult { let state = cast_pointer!(state, HTTP2State); return state.parse_ts(flow, stream_slice); @@ -1471,7 +1471,7 @@ unsafe extern "C" fn http2_parse_ts( unsafe extern "C" fn http2_parse_tc( flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState, - stream_slice: StreamSlice, _data: *const std::os::raw::c_void, + stream_slice: StreamSlice, _data: *mut std::os::raw::c_void, ) -> AppLayerResult { let state = cast_pointer!(state, HTTP2State); return state.parse_tc(flow, stream_slice); diff --git a/rust/src/ike/ike.rs b/rust/src/ike/ike.rs index 37b08c4dfa..1d574b6b53 100644 --- a/rust/src/ike/ike.rs +++ b/rust/src/ike/ike.rs @@ -321,7 +321,7 @@ unsafe extern "C" fn ike_state_tx_free(state: *mut std::os::raw::c_void, tx_id: unsafe extern "C" fn ike_parse_request( _flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState, - stream_slice: StreamSlice, _data: *const std::os::raw::c_void, + stream_slice: StreamSlice, _data: *mut std::os::raw::c_void, ) -> AppLayerResult { let state = cast_pointer!(state, IKEState); return state.handle_input(stream_slice.as_slice(), Direction::ToServer); @@ -329,7 +329,7 @@ unsafe extern "C" fn ike_parse_request( unsafe extern "C" fn ike_parse_response( _flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState, - stream_slice: StreamSlice, _data: *const std::os::raw::c_void, + stream_slice: StreamSlice, _data: *mut std::os::raw::c_void, ) -> AppLayerResult { let state = cast_pointer!(state, IKEState); return state.handle_input(stream_slice.as_slice(), Direction::ToClient); diff --git a/rust/src/krb/krb5.rs b/rust/src/krb/krb5.rs index 9f84798b4c..4843d85589 100644 --- a/rust/src/krb/krb5.rs +++ b/rust/src/krb/krb5.rs @@ -453,7 +453,7 @@ unsafe extern "C" fn krb5_probing_parser_tcp( unsafe extern "C" fn krb5_parse_request( flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState, - stream_slice: StreamSlice, _data: *const std::os::raw::c_void, + stream_slice: StreamSlice, _data: *mut std::os::raw::c_void, ) -> AppLayerResult { let buf = stream_slice.as_slice(); let state = cast_pointer!(state, KRB5State); @@ -465,7 +465,7 @@ unsafe extern "C" fn krb5_parse_request( unsafe extern "C" fn krb5_parse_response( flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState, - stream_slice: StreamSlice, _data: *const std::os::raw::c_void, + stream_slice: StreamSlice, _data: *mut std::os::raw::c_void, ) -> AppLayerResult { let buf = stream_slice.as_slice(); let state = cast_pointer!(state, KRB5State); @@ -477,7 +477,7 @@ unsafe extern "C" fn krb5_parse_response( unsafe extern "C" fn krb5_parse_request_tcp( flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState, - stream_slice: StreamSlice, _data: *const std::os::raw::c_void, + stream_slice: StreamSlice, _data: *mut std::os::raw::c_void, ) -> AppLayerResult { let state = cast_pointer!(state, KRB5State); let buf = stream_slice.as_slice(); @@ -535,7 +535,7 @@ unsafe extern "C" fn krb5_parse_request_tcp( unsafe extern "C" fn krb5_parse_response_tcp( flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState, - stream_slice: StreamSlice, _data: *const std::os::raw::c_void, + stream_slice: StreamSlice, _data: *mut std::os::raw::c_void, ) -> AppLayerResult { let state = cast_pointer!(state, KRB5State); let buf = stream_slice.as_slice(); diff --git a/rust/src/ldap/ldap.rs b/rust/src/ldap/ldap.rs index 4400ced606..8bd78763c6 100644 --- a/rust/src/ldap/ldap.rs +++ b/rust/src/ldap/ldap.rs @@ -579,7 +579,7 @@ unsafe extern "C" fn ldap_state_tx_free(state: *mut c_void, tx_id: u64) { unsafe extern "C" fn ldap_parse_request( flow: *mut Flow, state: *mut c_void, pstate: *mut AppLayerParserState, - stream_slice: StreamSlice, _data: *const c_void, + stream_slice: StreamSlice, _data: *mut c_void, ) -> AppLayerResult { if stream_slice.is_empty() { if SCAppLayerParserStateIssetFlag(pstate, APP_LAYER_PARSER_EOF_TS) > 0 { @@ -600,7 +600,7 @@ unsafe extern "C" fn ldap_parse_request( unsafe extern "C" fn ldap_parse_response( flow: *mut Flow, state: *mut c_void, pstate: *mut AppLayerParserState, - stream_slice: StreamSlice, _data: *const c_void, + stream_slice: StreamSlice, _data: *mut c_void, ) -> AppLayerResult { if stream_slice.is_empty() { if SCAppLayerParserStateIssetFlag(pstate, APP_LAYER_PARSER_EOF_TC) > 0 { @@ -620,7 +620,7 @@ unsafe extern "C" fn ldap_parse_response( unsafe extern "C" fn ldap_parse_request_udp( flow: *mut Flow, state: *mut c_void, _pstate: *mut AppLayerParserState, - stream_slice: StreamSlice, _data: *const c_void, + stream_slice: StreamSlice, _data: *mut c_void, ) -> AppLayerResult { let state = cast_pointer!(state, LdapState); state.parse_request_udp(flow, stream_slice) @@ -628,7 +628,7 @@ unsafe extern "C" fn ldap_parse_request_udp( unsafe extern "C" fn ldap_parse_response_udp( flow: *mut Flow, state: *mut c_void, _pstate: *mut AppLayerParserState, - stream_slice: StreamSlice, _data: *const c_void, + stream_slice: StreamSlice, _data: *mut c_void, ) -> AppLayerResult { let state = cast_pointer!(state, LdapState); state.parse_response_udp(flow, stream_slice) diff --git a/rust/src/modbus/modbus.rs b/rust/src/modbus/modbus.rs index 593e904b94..2b79f3b79e 100644 --- a/rust/src/modbus/modbus.rs +++ b/rust/src/modbus/modbus.rs @@ -341,7 +341,7 @@ unsafe extern "C" fn modbus_state_tx_free(state: *mut std::os::raw::c_void, tx_i unsafe extern "C" fn modbus_parse_request( flow: *mut Flow, state: *mut std::os::raw::c_void, pstate: *mut AppLayerParserState, - stream_slice: StreamSlice, _data: *const std::os::raw::c_void, + stream_slice: StreamSlice, _data: *mut std::os::raw::c_void, ) -> AppLayerResult { let buf = stream_slice.as_slice(); if buf.is_empty() { @@ -358,7 +358,7 @@ unsafe extern "C" fn modbus_parse_request( unsafe extern "C" fn modbus_parse_response( flow: *mut Flow, state: *mut std::os::raw::c_void, pstate: *mut AppLayerParserState, - stream_slice: StreamSlice, _data: *const std::os::raw::c_void, + stream_slice: StreamSlice, _data: *mut std::os::raw::c_void, ) -> AppLayerResult { let buf = stream_slice.as_slice(); if buf.is_empty() { diff --git a/rust/src/mqtt/mqtt.rs b/rust/src/mqtt/mqtt.rs index 50d5a1e2da..c96a7f6e2b 100644 --- a/rust/src/mqtt/mqtt.rs +++ b/rust/src/mqtt/mqtt.rs @@ -683,7 +683,7 @@ unsafe extern "C" fn mqtt_state_tx_free(state: *mut std::os::raw::c_void, tx_id: unsafe extern "C" fn mqtt_parse_request( flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState, - stream_slice: StreamSlice, _data: *const std::os::raw::c_void, + stream_slice: StreamSlice, _data: *mut std::os::raw::c_void, ) -> AppLayerResult { let state = cast_pointer!(state, MQTTState); return state.parse_request(flow, stream_slice); @@ -691,7 +691,7 @@ unsafe extern "C" fn mqtt_parse_request( unsafe extern "C" fn mqtt_parse_response( flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState, - stream_slice: StreamSlice, _data: *const std::os::raw::c_void, + stream_slice: StreamSlice, _data: *mut std::os::raw::c_void, ) -> AppLayerResult { let state = cast_pointer!(state, MQTTState); return state.parse_response(flow, stream_slice); diff --git a/rust/src/nfs/nfs.rs b/rust/src/nfs/nfs.rs index 43a9219f83..c668303582 100644 --- a/rust/src/nfs/nfs.rs +++ b/rust/src/nfs/nfs.rs @@ -1940,7 +1940,7 @@ extern "C" fn nfs_state_free(state: *mut std::os::raw::c_void) { /// C binding parse a NFS TCP request. Returns 1 on success, -1 on failure. unsafe extern "C" fn nfs_parse_request( flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState, - stream_slice: StreamSlice, _data: *const std::os::raw::c_void, + stream_slice: StreamSlice, _data: *mut std::os::raw::c_void, ) -> AppLayerResult { let state = cast_pointer!(state, NFSState); let flow = cast_pointer!(flow, Flow); @@ -1960,7 +1960,7 @@ extern "C" fn nfs_parse_request_tcp_gap(state: &mut NFSState, input_len: u32) -> unsafe extern "C" fn nfs_parse_response( flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState, - stream_slice: StreamSlice, _data: *const std::os::raw::c_void, + stream_slice: StreamSlice, _data: *mut std::os::raw::c_void, ) -> AppLayerResult { let state = cast_pointer!(state, NFSState); let flow = cast_pointer!(flow, Flow); @@ -1981,7 +1981,7 @@ extern "C" fn nfs_parse_response_tcp_gap(state: &mut NFSState, input_len: u32) - /// C binding to parse an NFS/UDP request. Returns 1 on success, -1 on failure. unsafe extern "C" fn nfs_parse_request_udp( f: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState, - stream_slice: StreamSlice, _data: *const std::os::raw::c_void, + stream_slice: StreamSlice, _data: *mut std::os::raw::c_void, ) -> AppLayerResult { let state = cast_pointer!(state, NFSState); @@ -1991,7 +1991,7 @@ unsafe extern "C" fn nfs_parse_request_udp( unsafe extern "C" fn nfs_parse_response_udp( f: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState, - stream_slice: StreamSlice, _data: *const std::os::raw::c_void, + stream_slice: StreamSlice, _data: *mut std::os::raw::c_void, ) -> AppLayerResult { let state = cast_pointer!(state, NFSState); SCLogDebug!("parsing {} bytes of response data", stream_slice.len()); diff --git a/rust/src/ntp/ntp.rs b/rust/src/ntp/ntp.rs index 6b704c2403..0a3575fe18 100644 --- a/rust/src/ntp/ntp.rs +++ b/rust/src/ntp/ntp.rs @@ -181,7 +181,7 @@ extern "C" fn ntp_state_free(state: *mut std::os::raw::c_void) { unsafe extern "C" fn ntp_parse_request( _flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState, - stream_slice: StreamSlice, _data: *const std::os::raw::c_void, + stream_slice: StreamSlice, _data: *mut std::os::raw::c_void, ) -> AppLayerResult { let state = cast_pointer!(state, NTPState); if state.parse(stream_slice.as_slice(), Direction::ToServer) < 0 { @@ -192,7 +192,7 @@ unsafe extern "C" fn ntp_parse_request( unsafe extern "C" fn ntp_parse_response( _flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState, - stream_slice: StreamSlice, _data: *const std::os::raw::c_void, + stream_slice: StreamSlice, _data: *mut std::os::raw::c_void, ) -> AppLayerResult { let state = cast_pointer!(state, NTPState); if state.parse(stream_slice.as_slice(), Direction::ToClient) < 0 { diff --git a/rust/src/pgsql/pgsql.rs b/rust/src/pgsql/pgsql.rs index ad61716bdd..9e4318906a 100644 --- a/rust/src/pgsql/pgsql.rs +++ b/rust/src/pgsql/pgsql.rs @@ -838,7 +838,7 @@ unsafe extern "C" fn state_tx_free(state: *mut std::os::raw::c_void, tx_id: u64) unsafe extern "C" fn parse_request( flow: *mut Flow, state: *mut std::os::raw::c_void, pstate: *mut AppLayerParserState, - stream_slice: StreamSlice, _data: *const std::os::raw::c_void, + stream_slice: StreamSlice, _data: *mut std::os::raw::c_void, ) -> AppLayerResult { if stream_slice.is_empty() { if SCAppLayerParserStateIssetFlag(pstate, APP_LAYER_PARSER_EOF_TS) > 0 { @@ -861,7 +861,7 @@ unsafe extern "C" fn parse_request( unsafe extern "C" fn parse_response( flow: *mut Flow, state: *mut std::os::raw::c_void, pstate: *mut AppLayerParserState, - stream_slice: StreamSlice, _data: *const std::os::raw::c_void, + stream_slice: StreamSlice, _data: *mut std::os::raw::c_void, ) -> AppLayerResult { if stream_slice.is_empty() { if SCAppLayerParserStateIssetFlag(pstate, APP_LAYER_PARSER_EOF_TC) > 0 { diff --git a/rust/src/pop3/pop3.rs b/rust/src/pop3/pop3.rs index e771650b60..0e1f28dbf2 100644 --- a/rust/src/pop3/pop3.rs +++ b/rust/src/pop3/pop3.rs @@ -670,7 +670,7 @@ unsafe extern "C" fn pop3_state_tx_free(state: *mut c_void, tx_id: u64) { unsafe extern "C" fn pop3_parse_request( flow: *mut Flow, state: *mut c_void, pstate: *mut AppLayerParserState, - stream_slice: StreamSlice, _data: *const c_void, + stream_slice: StreamSlice, _data: *mut c_void, ) -> AppLayerResult { let eof = SCAppLayerParserStateIssetFlag(pstate, APP_LAYER_PARSER_EOF_TS) > 0; @@ -694,7 +694,7 @@ unsafe extern "C" fn pop3_parse_request( unsafe extern "C" fn pop3_parse_response( flow: *mut Flow, state: *mut c_void, pstate: *mut AppLayerParserState, - stream_slice: StreamSlice, _data: *const c_void, + stream_slice: StreamSlice, _data: *mut c_void, ) -> AppLayerResult { let _eof = SCAppLayerParserStateIssetFlag(pstate, APP_LAYER_PARSER_EOF_TC) > 0; let state = cast_pointer!(state, POP3State); diff --git a/rust/src/quic/quic.rs b/rust/src/quic/quic.rs index d4e063840f..c26a967814 100644 --- a/rust/src/quic/quic.rs +++ b/rust/src/quic/quic.rs @@ -476,7 +476,7 @@ unsafe extern "C" fn quic_probing_parser( unsafe extern "C" fn quic_parse_tc( _flow: *mut Flow, state: *mut std::os::raw::c_void, pstate: *mut AppLayerParserState, - stream_slice: StreamSlice, _data: *const std::os::raw::c_void, + stream_slice: StreamSlice, _data: *mut std::os::raw::c_void, ) -> AppLayerResult { let state = cast_pointer!(state, QuicState); let buf = stream_slice.as_slice(); @@ -490,7 +490,7 @@ unsafe extern "C" fn quic_parse_tc( unsafe extern "C" fn quic_parse_ts( _flow: *mut Flow, state: *mut std::os::raw::c_void, pstate: *mut AppLayerParserState, - stream_slice: StreamSlice, _data: *const std::os::raw::c_void, + stream_slice: StreamSlice, _data: *mut std::os::raw::c_void, ) -> AppLayerResult { let state = cast_pointer!(state, QuicState); let buf = stream_slice.as_slice(); diff --git a/rust/src/rdp/rdp.rs b/rust/src/rdp/rdp.rs index 037743f2db..e0f5c577b4 100644 --- a/rust/src/rdp/rdp.rs +++ b/rust/src/rdp/rdp.rs @@ -464,7 +464,7 @@ fn probe_tls_handshake(input: &[u8]) -> bool { unsafe extern "C" fn rdp_parse_ts( flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState, - stream_slice: StreamSlice, _data: *const std::os::raw::c_void, + stream_slice: StreamSlice, _data: *mut std::os::raw::c_void, ) -> AppLayerResult { let state = cast_pointer!(state, RdpState); let buf = stream_slice.as_slice(); @@ -474,7 +474,7 @@ unsafe extern "C" fn rdp_parse_ts( unsafe extern "C" fn rdp_parse_tc( flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState, - stream_slice: StreamSlice, _data: *const std::os::raw::c_void, + stream_slice: StreamSlice, _data: *mut std::os::raw::c_void, ) -> AppLayerResult { let state = cast_pointer!(state, RdpState); let buf = stream_slice.as_slice(); diff --git a/rust/src/rfb/rfb.rs b/rust/src/rfb/rfb.rs index 664fd26415..61aea008a4 100644 --- a/rust/src/rfb/rfb.rs +++ b/rust/src/rfb/rfb.rs @@ -833,7 +833,7 @@ unsafe extern "C" fn rfb_state_tx_free(state: *mut std::os::raw::c_void, tx_id: unsafe extern "C" fn rfb_parse_request( flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState, - stream_slice: StreamSlice, _data: *const std::os::raw::c_void, + stream_slice: StreamSlice, _data: *mut std::os::raw::c_void, ) -> AppLayerResult { let state = cast_pointer!(state, RFBState); return state.parse_request(flow, stream_slice); @@ -841,7 +841,7 @@ unsafe extern "C" fn rfb_parse_request( unsafe extern "C" fn rfb_parse_response( flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState, - stream_slice: StreamSlice, _data: *const std::os::raw::c_void, + stream_slice: StreamSlice, _data: *mut std::os::raw::c_void, ) -> AppLayerResult { let state = cast_pointer!(state, RFBState); return state.parse_response(flow, stream_slice); diff --git a/rust/src/sip/sip.rs b/rust/src/sip/sip.rs index 61b792a6c2..6b834117a3 100755 --- a/rust/src/sip/sip.rs +++ b/rust/src/sip/sip.rs @@ -450,7 +450,7 @@ pub static mut ALPROTO_SIP: AppProto = ALPROTO_UNKNOWN; unsafe extern "C" fn sip_parse_request( flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState, - stream_slice: StreamSlice, _data: *const std::os::raw::c_void, + stream_slice: StreamSlice, _data: *mut std::os::raw::c_void, ) -> AppLayerResult { let state = cast_pointer!(state, SIPState); state.parse_request(flow, stream_slice).into() @@ -458,7 +458,7 @@ unsafe extern "C" fn sip_parse_request( unsafe extern "C" fn sip_parse_request_tcp( flow: *mut Flow, state: *mut std::os::raw::c_void, pstate: *mut AppLayerParserState, - stream_slice: StreamSlice, _data: *const std::os::raw::c_void, + stream_slice: StreamSlice, _data: *mut std::os::raw::c_void, ) -> AppLayerResult { if stream_slice.is_empty() { if SCAppLayerParserStateIssetFlag(pstate, APP_LAYER_PARSER_EOF_TS) > 0 { @@ -474,7 +474,7 @@ unsafe extern "C" fn sip_parse_request_tcp( unsafe extern "C" fn sip_parse_response( flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState, - stream_slice: StreamSlice, _data: *const std::os::raw::c_void, + stream_slice: StreamSlice, _data: *mut std::os::raw::c_void, ) -> AppLayerResult { let state = cast_pointer!(state, SIPState); state.parse_response(flow, stream_slice).into() @@ -482,7 +482,7 @@ unsafe extern "C" fn sip_parse_response( unsafe extern "C" fn sip_parse_response_tcp( flow: *mut Flow, state: *mut std::os::raw::c_void, pstate: *mut AppLayerParserState, - stream_slice: StreamSlice, _data: *const std::os::raw::c_void, + stream_slice: StreamSlice, _data: *mut std::os::raw::c_void, ) -> AppLayerResult { if stream_slice.is_empty() { if SCAppLayerParserStateIssetFlag(pstate, APP_LAYER_PARSER_EOF_TC) > 0 { diff --git a/rust/src/smb/smb.rs b/rust/src/smb/smb.rs index 1784866574..5cb09fd505 100644 --- a/rust/src/smb/smb.rs +++ b/rust/src/smb/smb.rs @@ -2019,7 +2019,7 @@ unsafe extern "C" fn smb_parse_request_tcp(flow: *mut Flow, state: *mut ffi::c_void, _pstate: *mut AppLayerParserState, stream_slice: StreamSlice, - _data: *const std::os::raw::c_void, + _data: *mut std::os::raw::c_void, ) -> AppLayerResult { @@ -2054,7 +2054,7 @@ unsafe extern "C" fn smb_parse_response_tcp(flow: *mut Flow, state: *mut ffi::c_void, _pstate: *mut AppLayerParserState, stream_slice: StreamSlice, - _data: *const ffi::c_void, + _data: *mut ffi::c_void, ) -> AppLayerResult { diff --git a/rust/src/snmp/snmp.rs b/rust/src/snmp/snmp.rs index efd5e5a744..5e83125acc 100644 --- a/rust/src/snmp/snmp.rs +++ b/rust/src/snmp/snmp.rs @@ -290,7 +290,7 @@ unsafe extern "C" fn snmp_parse_request(_flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState, stream_slice: StreamSlice, - _data: *const std::os::raw::c_void, + _data: *mut std::os::raw::c_void, ) -> AppLayerResult { let state = cast_pointer!(state,SNMPState); state.parse(stream_slice.as_slice(), Direction::ToServer).into() @@ -300,7 +300,7 @@ unsafe extern "C" fn snmp_parse_response(_flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState, stream_slice: StreamSlice, - _data: *const std::os::raw::c_void, + _data: *mut std::os::raw::c_void, ) -> AppLayerResult { let state = cast_pointer!(state,SNMPState); state.parse(stream_slice.as_slice(), Direction::ToClient).into() diff --git a/rust/src/ssh/ssh.rs b/rust/src/ssh/ssh.rs index 9c415c00b5..a8818ffe8b 100644 --- a/rust/src/ssh/ssh.rs +++ b/rust/src/ssh/ssh.rs @@ -453,7 +453,7 @@ extern "C" fn ssh_state_tx_free(_state: *mut std::os::raw::c_void, _tx_id: u64) unsafe extern "C" fn ssh_parse_request( flow: *mut Flow, state: *mut std::os::raw::c_void, pstate: *mut AppLayerParserState, - stream_slice: StreamSlice, _data: *const std::os::raw::c_void, + stream_slice: StreamSlice, _data: *mut std::os::raw::c_void, ) -> AppLayerResult { let state = &mut cast_pointer!(state, SSHState); let buf = stream_slice.as_slice(); @@ -468,7 +468,7 @@ unsafe extern "C" fn ssh_parse_request( unsafe extern "C" fn ssh_parse_response( flow: *mut Flow, state: *mut std::os::raw::c_void, pstate: *mut AppLayerParserState, - stream_slice: StreamSlice, _data: *const std::os::raw::c_void, + stream_slice: StreamSlice, _data: *mut std::os::raw::c_void, ) -> AppLayerResult { let state = &mut cast_pointer!(state, SSHState); let buf = stream_slice.as_slice(); diff --git a/rust/src/telnet/telnet.rs b/rust/src/telnet/telnet.rs index 6f143e427e..9d9a6d3ad9 100644 --- a/rust/src/telnet/telnet.rs +++ b/rust/src/telnet/telnet.rs @@ -422,7 +422,7 @@ unsafe extern "C" fn telnet_parse_request( state: *mut std::os::raw::c_void, pstate: *mut AppLayerParserState, stream_slice: StreamSlice, - _data: *const std::os::raw::c_void + _data: *mut std::os::raw::c_void ) -> AppLayerResult { let eof = SCAppLayerParserStateIssetFlag(pstate, APP_LAYER_PARSER_EOF_TS) > 0; @@ -449,7 +449,7 @@ unsafe extern "C" fn telnet_parse_response( state: *mut std::os::raw::c_void, pstate: *mut AppLayerParserState, stream_slice: StreamSlice, - _data: *const std::os::raw::c_void + _data: *mut std::os::raw::c_void ) -> AppLayerResult { let _eof = SCAppLayerParserStateIssetFlag(pstate, APP_LAYER_PARSER_EOF_TC) > 0; let state = cast_pointer!(state, TelnetState); diff --git a/rust/src/websocket/websocket.rs b/rust/src/websocket/websocket.rs index f24a544f84..d29b08a5e3 100644 --- a/rust/src/websocket/websocket.rs +++ b/rust/src/websocket/websocket.rs @@ -348,7 +348,7 @@ unsafe extern "C" fn websocket_state_tx_free(state: *mut c_void, tx_id: u64) { unsafe extern "C" fn websocket_parse_request( flow: *mut Flow, state: *mut c_void, _pstate: *mut AppLayerParserState, - stream_slice: StreamSlice, _data: *const c_void, + stream_slice: StreamSlice, _data: *mut c_void, ) -> AppLayerResult { let state = cast_pointer!(state, WebSocketState); state.parse(stream_slice, Direction::ToServer, flow) @@ -356,7 +356,7 @@ unsafe extern "C" fn websocket_parse_request( unsafe extern "C" fn websocket_parse_response( flow: *mut Flow, state: *mut c_void, _pstate: *mut AppLayerParserState, - stream_slice: StreamSlice, _data: *const c_void, + stream_slice: StreamSlice, _data: *mut c_void, ) -> AppLayerResult { let state = cast_pointer!(state, WebSocketState); state.parse(stream_slice, Direction::ToClient, flow)