]> git.ipfire.org Git - thirdparty/suricata.git/log
thirdparty/suricata.git
8 months agocodecov: expect 5 flags to be submitted 12185/head
Victor Julien [Fri, 29 Nov 2024 10:12:14 +0000 (11:12 +0100)] 
codecov: expect 5 flags to be submitted

Flags are:
- unittests
- suricata-verify
- pcap
- livemode
- fuzzcorpus

This should make sure codecov only adds its report after receiving
the results for each of the flags.

8 months agogithub-actions: add basic commandline tests
Victor Julien [Fri, 29 Nov 2024 10:07:02 +0000 (11:07 +0100)] 
github-actions: add basic commandline tests

Run various commandlines, checking that they don't error/crash.

Also counts towards coverage.

8 months agogithub-actions: fix codecov for unittests
Victor Julien [Fri, 29 Nov 2024 09:47:15 +0000 (10:47 +0100)] 
github-actions: fix codecov for unittests

Don't overwrite ut coverage with later tests.

8 months agorust: allow static_mut_refs for now
Jason Ish [Thu, 28 Nov 2024 16:06:29 +0000 (10:06 -0600)] 
rust: allow static_mut_refs for now

But we should fix all these soon.

8 months agorust/smb: fix rustdoc line
Jason Ish [Thu, 28 Nov 2024 15:54:12 +0000 (09:54 -0600)] 
rust/smb: fix rustdoc line

'///' style rust comments/documentation come before the item being
documented.

Spotted by clippy.

8 months agorust: remove unnecessary lifetimes
Jason Ish [Thu, 28 Nov 2024 15:53:00 +0000 (09:53 -0600)] 
rust: remove unnecessary lifetimes

Fix provided by cargo clippy --fix.

8 months agorust: update num-derive to 0.4.2
Jason Ish [Thu, 28 Nov 2024 15:51:24 +0000 (09:51 -0600)] 
rust: update num-derive to 0.4.2

This prevents the clippy warning:

508 | #[derive(FromPrimitive, Debug)]
    |          ^------------
    |          |
    |          `FromPrimitive` is not local
    |          move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_IsakmpPayloadType`
509 | pub enum IsakmpPayloadType {
    |          ----------------- `IsakmpPayloadType` is not local
    |
    = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
    = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
    = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)

8 months agoutil-buffer: expand by multiples of 4k 12178/head
Jason Ish [Thu, 28 Nov 2024 15:20:18 +0000 (09:20 -0600)] 
util-buffer: expand by multiples of 4k

8 months agooutput-json: cleanup, have OutputJsonBuilderBuffer return void
Jason Ish [Wed, 27 Nov 2024 19:29:11 +0000 (13:29 -0600)] 
output-json: cleanup, have OutputJsonBuilderBuffer return void

The return value was never used.

8 months agooutput-json: drop eve records that are too long
Jason Ish [Fri, 22 Nov 2024 21:26:49 +0000 (15:26 -0600)] 
output-json: drop eve records that are too long

In the situation where the mem buffer cannot be expanded to the
requested size, drop the log message.

For each JSON log context, a warning will be emitted once with a partial
bit of the log record being dropped to identify what event types may be
leading to large log records.

This also fixes the call to MemBufferExpand which is supposed be
passed the amount to expand by, not the new size required.

Ticket: #7300

8 months agoconfigure: Remove obsolete rust support line
Nancy Enos [Mon, 28 Oct 2024 10:28:04 +0000 (13:28 +0300)] 
configure: Remove obsolete rust support line

Ticket: #6705

8 months agodetect: absent keyword to test absence of sticky buffer 12174/head
Philippe Antoine [Thu, 30 Nov 2023 13:47:14 +0000 (14:47 +0100)] 
detect: absent keyword to test absence of sticky buffer

Ticket: 2224

It takes an argument to match only if the buffer is absent,
or it can still match if the buffer is present, but we test
the absence of some content.

For multi buffers, absent matches if there are 0 buffers.

For file keywords, absent matches if there is no file.

8 months agohttp1/detect: code simplification
Philippe Antoine [Tue, 8 Oct 2024 14:32:18 +0000 (16:32 +0200)] 
http1/detect: code simplification

- DetectEngineInspectBufferHttpHeader is only used with ALPROTO_HTTP1
- engine->progress should be HTP_REQUEST_HEADERS or HTP_RESPONSE_HEADERS based on the direction

8 months agodetect/ip-only: code cleanups
Victor Julien [Wed, 30 Oct 2024 09:50:52 +0000 (10:50 +0100)] 
detect/ip-only: code cleanups

Move repeated pattern into helper function.

8 months agodetect/sigorder: remove data structs from global namespace
Victor Julien [Wed, 30 Oct 2024 08:06:19 +0000 (09:06 +0100)] 
detect/sigorder: remove data structs from global namespace

Rename types enum to reflect it is not using a radix tree anymore.

8 months agodetect/ip-only: remove dead code
Victor Julien [Wed, 30 Oct 2024 07:52:08 +0000 (08:52 +0100)] 
detect/ip-only: remove dead code

8 months agoradix: remove old radix tree implementation
Victor Julien [Tue, 29 Oct 2024 15:04:44 +0000 (16:04 +0100)] 
radix: remove old radix tree implementation

No longer used.

8 months agodetect/iponly: reimplement with radix4 for ipv6
Victor Julien [Tue, 29 Oct 2024 14:58:37 +0000 (15:58 +0100)] 
detect/iponly: reimplement with radix4 for ipv6

Use a more compact ipv6 specific structure.

8 months agodetect/iponly: reimplement with radix4 for ipv4
Victor Julien [Tue, 29 Oct 2024 14:33:30 +0000 (15:33 +0100)] 
detect/iponly: reimplement with radix4 for ipv4

Use a more compact ipv4 specific structure.

8 months agohost-os-policy: switch to radix4/6
Victor Julien [Thu, 19 May 2022 06:12:09 +0000 (08:12 +0200)] 
host-os-policy: switch to radix4/6

Splits the unified tree into a ipv4 specific and ipv6 specific tree.

8 months agohtp: switch config tree to radix4/6
Victor Julien [Wed, 18 May 2022 21:49:56 +0000 (23:49 +0200)] 
htp: switch config tree to radix4/6

Splits the unified tree into a ipv4 specific and ipv6 specific tree.

8 months agodefrag/config: switch to radix4/6
Victor Julien [Wed, 18 May 2022 20:09:56 +0000 (22:09 +0200)] 
defrag/config: switch to radix4/6

Splits the unified tree into a ipv4 specific and ipv6 specific tree.

8 months agoreputation: switch cidr handling to radix4/6
Victor Julien [Wed, 18 May 2022 19:35:00 +0000 (21:35 +0200)] 
reputation: switch cidr handling to radix4/6

Splits the unified tree into a ipv4 specific and ipv6 specific tree.

8 months agoradix: implement more compact trees
Victor Julien [Wed, 18 May 2022 12:32:35 +0000 (14:32 +0200)] 
radix: implement more compact trees

Implement a more compact set of trees specifically for IPv4
and IPv6 addresses. This allows for more compact data structures
and fewer memory allocations.

Based on the existing radix tree implementation.

8 months agohost-os-info: test cleanup
Victor Julien [Tue, 29 Oct 2024 08:35:33 +0000 (09:35 +0100)] 
host-os-info: test cleanup

8 months agoldap: add support for STARTTLS to make certificate information available 12156/head
Pierre Chifflier [Wed, 13 Nov 2024 14:11:22 +0000 (15:11 +0100)] 
ldap: add support for STARTTLS to make certificate information available

Ticket: #7394.

8 months agoldap: add port 3268 (used by Active Directory)
Pierre Chifflier [Tue, 29 Oct 2024 09:51:52 +0000 (10:51 +0100)] 
ldap: add port 3268 (used by Active Directory)

8 months agodetect/transform: fix leak in xor transform parse 12147/head
Philippe Antoine [Sun, 24 Nov 2024 20:23:40 +0000 (21:23 +0100)] 
detect/transform: fix leak in xor transform parse

Fixes: 8984bc680112 ("transforms: move xor to rust")
8 months agorust: put all rust/cargo env vars in CARGO_ENV 12140/head
Jason Ish [Tue, 19 Nov 2024 17:28:03 +0000 (11:28 -0600)] 
rust: put all rust/cargo env vars in CARGO_ENV

To ensure that all calls to cargo use the same environment variables,
put the environment variables in CARGO_ENV so every call to cargo can
easily use the same vars.

The Cargo build system is smarter than make, it can detect a change in
an environment variable that affects the build, and the setting of
SURICATA_LUA_SYS_HEADER_DST changing could cause a rebuild.

Also update suricata-lua-sys, which is smarter about copying headers. It
will only copy if the destination does not exist, or the source header
is newer than the target, which can also prevent unnecessary rebuilds.

This is mainly to fix an issue where subsequent builds may fail,
especially when running an editor with a LSP enabled:

    Update lua crate to 0.1.0-alpha.5. This update will force a rewrite of
    the headers if the env var SURICATA_LUA_SYS_HEADER_DST changes. This
    fixes the issue where the headers may not be written.

    The cause is that Rust dependencies are cached, and if your editor is
    using rust-analyzer, it might cache the build without this var being
    set, so these headers are not available to Suricata. This crate update
    forces the re-run of the Lua build.rs if this env var changes, fixing
    this issue.

8 months agogithub-actions: add list keywords and app layers
Eric Leblond [Tue, 19 Nov 2024 20:11:45 +0000 (21:11 +0100)] 
github-actions: add list keywords and app layers

Add the 2 command line options to coverage build.

8 months agosuricata: fix list-keywords option
Eric Leblond [Sun, 17 Nov 2024 18:45:25 +0000 (19:45 +0100)] 
suricata: fix list-keywords option

The list keywords option was crashing due to improper init.

Ticket: 7397

8 months agodetect/smb: fix the sigmatch table for url 12122/head
Shivani Bhardwaj [Fri, 15 Nov 2024 09:31:31 +0000 (15:01 +0530)] 
detect/smb: fix the sigmatch table for url

sigmatch_table for url entry was incorrectly set to DETECT_FLOW_AGE.

8 months agomake: install-headers: rust-bindings.h 12117/head
Jason Ish [Fri, 18 Oct 2024 14:46:42 +0000 (08:46 -0600)] 
make: install-headers: rust-bindings.h

rust-bindings.h was not being installed with "make install-headers",
and its now pulled in by a header used for plugin support, so make
sure its installed.

We first attempt to install the "dist" version if exists, otherwise
install the "gen" one. Also install the "gen" even if the "dist" one
exists, as its going to be newer.

8 months agodetect: break apart sigtable setup and initialization
Jason Ish [Thu, 17 Oct 2024 19:16:38 +0000 (13:16 -0600)] 
detect: break apart sigtable setup and initialization

Allows initialization to be done early, so the table is ready for
dynamic registration by plugins which are loaded before signature
setup.

8 months agoexamples/plugin: update to find generated rust header
Jason Ish [Tue, 15 Oct 2024 23:06:35 +0000 (17:06 -0600)] 
examples/plugin: update to find generated rust header

Needed for changes to output-eve.h.

8 months agoeve: user callbacks for adding additional data
Jason Ish [Fri, 11 Oct 2024 19:21:14 +0000 (13:21 -0600)] 
eve: user callbacks for adding additional data

Provide a way for library/plugin users to register a callback that
will be called prior to an EVE record being closed. The callback will
be passed ThreadVars, Packet, and Flow pointers if available, as well
as private user data.

8 months agothreads: add initialization callbacks
Jason Ish [Fri, 11 Oct 2024 17:48:50 +0000 (11:48 -0600)] 
threads: add initialization callbacks

For library users and plugins that need to hook into the thread life
cycle, perhaps to initialize some thread storage.

8 months agothreads: add storage api, based on flow storage
Jason Ish [Fri, 11 Oct 2024 17:41:47 +0000 (11:41 -0600)] 
threads: add storage api, based on flow storage

8 months agoflow: add callbacks for flow init and flow updates
Jason Ish [Thu, 10 Oct 2024 22:06:09 +0000 (16:06 -0600)] 
flow: add callbacks for flow init and flow updates

Adds user registerable callbacks for flow initialization, flow
update and flow finish.

Some plugins, such as other DPI libraries like nDPI need a way to hook
into these flow lifecycle events.

Ticket: #7319
Ticket: #7320

8 months agoapp-layer/stats: Expand memuse/memcap handling
Jeff Lucovsky [Sun, 27 Oct 2024 14:13:07 +0000 (10:13 -0400)] 
app-layer/stats: Expand memuse/memcap handling

This commit adds memcap/memuse handling to the unix-socket interface:
- ftp
- http-byterange
- host

New stats:
- ippair: memuse, memcap
- host: memuse, memcap
- http-byterange: memuse, memcap

8 months agothash/memcap: Use atomics for memcap
Jeff Lucovsky [Sun, 27 Oct 2024 13:53:31 +0000 (09:53 -0400)] 
thash/memcap: Use atomics for memcap

Issue: 845

Maintain the memcap as an atomic counter so changes through the
unix-socket interface can be supported.

8 months agomemcap/socket: Improve memcap array support
Jeff Lucovsky [Sun, 27 Oct 2024 13:28:08 +0000 (09:28 -0400)] 
memcap/socket: Improve memcap array support

Remove hard-coded value for the memcap array and substitute compile-time
value for array sizing.

Issue: 845

8 months agodoc/userguide: document smb cache size limit options 12094/head
Victor Julien [Fri, 25 Oct 2024 13:47:50 +0000 (15:47 +0200)] 
doc/userguide: document smb cache size limit options

Ticket: #5672.

8 months agosmb: use lru for ssn2vec_map
Victor Julien [Thu, 24 Oct 2024 13:29:21 +0000 (15:29 +0200)] 
smb: use lru for ssn2vec_map

Generic ssn2vec_map was a HashMap used for mapping session key to
different types of vector data:
- GUID
- filename
- share name

Turn this into a bounded LruCache. Rename to ssn2vec_cache.

Size of the cache is 512 by default, and can be configured using:

`app-layer.protocols.smb.max-session-cache-size`

Ticket: #5672.

8 months agosmb: use lru for ssnguid2vec_map; rename
Victor Julien [Thu, 24 Oct 2024 13:13:40 +0000 (15:13 +0200)] 
smb: use lru for ssnguid2vec_map; rename

Reimplement the ssnguid2vec_map HashMap as a LruCache.

Since this is a DCERPC record cache, name it as such.

Default size is 128. Can be controlled by
`app-layer.protocols.smb.max-dcerpc-frag-cache-size`.

Ticket: #5672.

8 months agosmb: use lru for ssn2tree; rename
Victor Julien [Thu, 24 Oct 2024 12:26:41 +0000 (14:26 +0200)] 
smb: use lru for ssn2tree; rename

Turn the map mapping the smb session key to smb tree into a lru cache,
limited to 1024 by default.

Add `app-layer.protocols.smb.max-tree-cache-size` option to control the
limit.

Ticket: #5672.

8 months agosmb: use lru for ssn2vecoffset_map; rename
Victor Julien [Thu, 24 Oct 2024 12:18:48 +0000 (14:18 +0200)] 
smb: use lru for ssn2vecoffset_map; rename

Rename to read_offset_cache.

Add `app-layer.protocols.smb.max-read-offset-cache-size` option to
control the limit.

Ticket: #5672.

8 months agosmb: use lru for guid2name map; rename
Victor Julien [Tue, 17 Sep 2024 15:10:19 +0000 (17:10 +0200)] 
smb: use lru for guid2name map; rename

Use `lru` crate. Rename to reflect this.

Add `app-layer.protocols.smb.max-guid-cache-size` to control the max
size of the LRU cache.

Ticket: #5672.

8 months agosmb1: remove name on close
Victor Julien [Tue, 30 Jul 2024 13:59:38 +0000 (15:59 +0200)] 
smb1: remove name on close

Ticket: #5672.

8 months agosmb2: remove filename on close
Victor Julien [Tue, 30 Jul 2024 12:15:34 +0000 (14:15 +0200)] 
smb2: remove filename on close

Ticket: #5672.

8 months agosmb: update to GAP handling
Victor Julien [Tue, 30 Jul 2024 12:01:14 +0000 (14:01 +0200)] 
smb: update to GAP handling

Don't tag the session as gap'd when the GAP is in a precise location:

1. in "skip" data, where the GAP just fits the skip data

2. in file data, where we pass the GAP on to the file

This reduces load of GAP post-processing that is unnecessary in these
case.

8 months agosmb2: use if let for read/write parsing
Victor Julien [Tue, 30 Jul 2024 08:56:28 +0000 (10:56 +0200)] 
smb2: use if let for read/write parsing

8 months agorust: update crates
Victor Julien [Tue, 5 Nov 2024 11:12:30 +0000 (12:12 +0100)] 
rust: update crates

8 months agotransforms: move urldecode to rust
Philippe Antoine [Wed, 30 Oct 2024 13:44:30 +0000 (14:44 +0100)] 
transforms: move urldecode to rust

Ticket: 7229

8 months agotransforms: move xor to rust
Philippe Antoine [Wed, 30 Oct 2024 12:54:03 +0000 (13:54 +0100)] 
transforms: move xor to rust

Ticket: 7229

8 months agotransforms: move http headers transforms to rust
Philippe Antoine [Wed, 30 Oct 2024 11:09:33 +0000 (12:09 +0100)] 
transforms: move http headers transforms to rust

Ticket: 7229

8 months agotransforms: move casechange to rust
Philippe Antoine [Wed, 30 Oct 2024 10:35:39 +0000 (11:35 +0100)] 
transforms: move casechange to rust

Ticket: 7229

8 months agotransforms: move hash transforms to rust
Philippe Antoine [Tue, 29 Oct 2024 13:27:59 +0000 (14:27 +0100)] 
transforms: move hash transforms to rust

md5, sha1 and sha256

Ticket: 7229

8 months agotransforms: move dotprefix to rust
Philippe Antoine [Wed, 2 Oct 2024 19:41:06 +0000 (21:41 +0200)] 
transforms: move dotprefix to rust

Ticket: 7229

8 months agotransforms: move compress_whitespace to rust
Philippe Antoine [Wed, 2 Oct 2024 19:20:04 +0000 (21:20 +0200)] 
transforms: move compress_whitespace to rust

Ticket: 7229

8 months agotransforms: move strip_whitespace to rust
Philippe Antoine [Wed, 2 Oct 2024 13:28:56 +0000 (15:28 +0200)] 
transforms: move strip_whitespace to rust

Ticket: 7229

8 months agosuricata/bpf: fix -Wshorten-64-to-32 warning 12088/head
Philippe Antoine [Mon, 4 Nov 2024 16:09:32 +0000 (17:09 +0100)] 
suricata/bpf: fix -Wshorten-64-to-32 warning

Ticket: 7366
Ticket: 6186

8 months agohttp2: rename event variant to match rule
Jason Ish [Fri, 1 Nov 2024 15:58:33 +0000 (09:58 -0600)] 
http2: rename event variant to match rule

Rename InvalidHTTP1Settings to InvalidHttp1Settings so it gets the
expected name transformation of "invalid_http1_settings".

Ticket: #7361

8 months agorules/modbus: remove rule for event that not longer exists
Jason Ish [Fri, 1 Nov 2024 15:46:58 +0000 (09:46 -0600)] 
rules/modbus: remove rule for event that not longer exists

The event "modbus.invalid_unit_identifier" no longer exists.

Ticket: #7361

8 months agorules/ike: fix ike event names that have changed
Jason Ish [Fri, 1 Nov 2024 15:46:11 +0000 (09:46 -0600)] 
rules/ike: fix ike event names that have changed

- weak_crypto_nodh -> weak_crypto_no_dh
- weak_crypto_noauth -> weak_crypto_no_auth

Ticket: #7361

8 months agorules/dns: fix dns event names that have changed
Jason Ish [Fri, 1 Nov 2024 15:45:24 +0000 (09:45 -0600)] 
rules/dns: fix dns event names that have changed

- not_a_request to not_request
- not_a_response to not_reponse

Ticket: #7361

8 months agogithub-actions: bump github/codeql-action from 3.26.13 to 3.27.0
dependabot[bot] [Fri, 1 Nov 2024 20:00:09 +0000 (20:00 +0000)] 
github-actions: bump github/codeql-action from 3.26.13 to 3.27.0

Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.26.13 to 3.27.0.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Commits](https://github.com/github/codeql-action/compare/v3.26.13...v3.27.0)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
8 months agogithub-actions: bump actions/checkout from 4.2.1 to 4.2.2
dependabot[bot] [Fri, 1 Nov 2024 19:59:38 +0000 (19:59 +0000)] 
github-actions: bump actions/checkout from 4.2.1 to 4.2.2

Bumps [actions/checkout](https://github.com/actions/checkout) from 4.2.1 to 4.2.2.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871...11bd71901bbe5b1630ceea73d27597364c9af683)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
8 months agodetect/http: fix progress for headers keywords
Philippe Antoine [Tue, 15 Oct 2024 19:05:19 +0000 (21:05 +0200)] 
detect/http: fix progress for headers keywords

Ticket: 7326

Having a lower progress than one where we actually can get
occurences of the multibuffer made prefilter
bail out too early, not having found a buffer in the multi-buffer
that matiched the prefilter.

For example, we registered http_request_header with progress 0
instad of progress HTP_REQUEST_HEADERS==2, and if the first
packet had only the request line, we would consider
that signatures with http_request_header as prefilter/fast_pattern
could not match for this transaction, even if they in fact
could have a later packet with matching headers.

Hence, we got false negatives, if http.request_header or
http.response_header was used as fast pattern, and if the request
or response came in multiple packets, and the first of these packets
did not have enough data (like only http request line),
and the next packets did have the matching data.

8 months agomisc: Remove duplicate function declarations
Nancy Enos [Mon, 28 Oct 2024 11:22:38 +0000 (14:22 +0300)] 
misc: Remove duplicate function declarations

Ticket: #7297

8 months agodetect/analyzer: add more details for the tcp window keyword
Nancy Enos [Wed, 23 Oct 2024 21:29:18 +0000 (00:29 +0300)] 
detect/analyzer: add more details for the tcp window keyword

Ticket: 6352

8 months agomqtt: double-check detection directions
Sascha Steinbiss [Thu, 24 Oct 2024 22:05:24 +0000 (00:05 +0200)] 
mqtt: double-check detection directions

Ticket: #7323

8 months agomqtt: add reason code support for SUBACK
Sascha Steinbiss [Sun, 20 Oct 2024 09:27:51 +0000 (11:27 +0200)] 
mqtt: add reason code support for SUBACK

Ticket: #7323

9 months agoeve: threadinit/deinit callbacks are optional for filetypes 12074/head
Jason Ish [Wed, 30 Oct 2024 16:05:14 +0000 (10:05 -0600)] 
eve: threadinit/deinit callbacks are optional for filetypes

Only call ThreadInit and ThreadDeinit for custom eve filetypes if they
exist. They are not required by all filetypes.

Ticket: #7359

9 months agoapp-layer: remove ALPROTO_TEST and tests 12051/head
Philippe Antoine [Tue, 29 Oct 2024 10:00:15 +0000 (11:00 +0100)] 
app-layer: remove ALPROTO_TEST and tests

These tests purpose seems to have been lost.
Registering a alproto with a parser function that always fails,
and just testing that AppLayerParserParse returned -1...
We would get the same result  without registering a parser function,
or using ALPROTO_FAILED as argument to AppLayerParserParse

The comment says "Test the deallocation of app layer parser memory
on occurrence of error in the parsing process."
but I do not see how this is tested.

9 months agolua: update to newer lua crate 12049/head
Jason Ish [Thu, 24 Oct 2024 16:35:56 +0000 (10:35 -0600)] 
lua: update to newer lua crate

This crate lets us instruct it where to copy the header files instead
of our Makefile trying to find the correct ones and copying them into
place.

Can prevent the simultaneous copy errors sometimes seen on a make
without a clean.

9 months agomisc: fix build of rules profiling 12039/head
Eric Leblond [Fri, 25 Oct 2024 21:34:53 +0000 (23:34 +0200)] 
misc: fix build of rules profiling

The patch a0fc2b8628d8a281ef7a2943614b507498c80ca3 has removed the
declaration of functions used when building with ruleset profiling
only (without --enable-profiling). This is causing a build failure.

This patch moves the declaration to the rules profiling section to
be sure it is always there.

9 months agoMakefile.cvs: remove, not used 12032/head
Jason Ish [Thu, 24 Oct 2024 21:02:18 +0000 (15:02 -0600)] 
Makefile.cvs: remove, not used

9 months agomisc: Remove duplicate function declarations
Nancy Enos [Fri, 18 Oct 2024 07:59:42 +0000 (10:59 +0300)] 
misc: Remove duplicate function declarations

Ticket: #7297

9 months agoutil/var-name: switch to SCTime_t
Victor Julien [Sat, 12 Oct 2024 07:04:07 +0000 (09:04 +0200)] 
util/var-name: switch to SCTime_t

9 months agothreads: track wall clock time precisely
Victor Julien [Sun, 15 Sep 2024 13:53:24 +0000 (15:53 +0200)] 
threads: track wall clock time precisely

Issue warning if thread sleeps for a long time.

9 months agotime: add SCTIME_CMP_EQ
Victor Julien [Wed, 18 Sep 2024 08:15:35 +0000 (10:15 +0200)] 
time: add SCTIME_CMP_EQ

9 months agoutil/hash-string: fix compile warning
Victor Julien [Sat, 12 Oct 2024 05:02:33 +0000 (07:02 +0200)] 
util/hash-string: fix compile warning

Clang 19:

util-hash-string.c:41:16: error: implicit conversion loses integer precision: 'unsigned long' to 'int' [-Werror,-Wshorten-64-to-32]
   41 |     int len1 = strlen((char *)data1);
      |         ~~~~   ^~~~~~~~~~~~~~~~~~~~~
util-hash-string.c:42:16: error: implicit conversion loses integer precision: 'unsigned long' to 'int' [-Werror,-Wshorten-64-to-32]
   42 |     int len2 = strlen((char *)data2);
      |         ~~~~   ^~~~~~~~~~~~~~~~~~~~~
2 errors generated.

9 months agotime: add gettimeofday wrapper for SCTime_t
Victor Julien [Thu, 24 Oct 2024 07:44:08 +0000 (09:44 +0200)] 
time: add gettimeofday wrapper for SCTime_t

9 months agotime: remove unused function
Victor Julien [Sat, 12 Oct 2024 04:59:37 +0000 (06:59 +0200)] 
time: remove unused function

It tripped up cppcheck:

src/util-time.h:124:35: error: syntax error [syntaxError]
    return !timercmp(first, second, >);

9 months agostream: track pcap log segments timestamp with SCTime_t
Victor Julien [Sat, 12 Oct 2024 04:58:34 +0000 (06:58 +0200)] 
stream: track pcap log segments timestamp with SCTime_t

This is a more compact time format.

9 months agoeve/tls: don't construct const from other const
Jason Ish [Wed, 23 Oct 2024 21:45:05 +0000 (15:45 -0600)] 
eve/tls: don't construct const from other const

Some compiler/platform combinations don't like creating one const from
another as it can't guarantee the other is defined, resulting in the
following compile error:

output-json-tls.c:102:5: error: initializer element is not constant
     BASIC_FIELDS |
     ^~~~~~~~~~~~

Fixes commit 377989df6cea13a23349a4c53cfb037c3ecd6d83

9 months agodpdk/hw_offload: add support for vlan stripping
Adam Kiripolsky [Wed, 16 Oct 2024 08:17:50 +0000 (10:17 +0200)] 
dpdk/hw_offload: add support for vlan stripping

Utilize DPDK API for hardware vlan stripping if supported by NIC.

Ticket: 7330

9 months agoapplayer/htp: convert to new FAIL/PASS API 12026/head
Nancy Enos [Fri, 11 Oct 2024 12:09:40 +0000 (15:09 +0300)] 
applayer/htp: convert to new FAIL/PASS API

Ticket: #6935

9 months agomisc: remove unneeded headers
Jason Ish [Wed, 23 Oct 2024 15:52:18 +0000 (09:52 -0600)] 
misc: remove unneeded headers

Remove unneeded headers from worked on in previous commits, just
simple ones flagged by clangd.

9 months agoapp-layer: use uint8_t consistent for event IDs
Jason Ish [Tue, 22 Oct 2024 17:55:21 +0000 (11:55 -0600)] 
app-layer: use uint8_t consistent for event IDs

Introduce a common function for mapping names to IDs that performs
bounds checking.

Note: For event IDs in the enum that are larger than a uint8_t, -1
will be returned instead of -4. -4 has special meaning during
signature parsin that means requirements were not met. -4 has no
special handling prior to requirements, or the meaning has been lost.

9 months agodetect/analyzer: add more details for flow_age
Alice Akaki [Tue, 22 Oct 2024 22:44:27 +0000 (18:44 -0400)] 
detect/analyzer: add more details for flow_age

Ticket: #6312

9 months agoredis: add automatic trimming support for streams
Sascha Steinbiss [Fri, 18 Oct 2024 21:24:14 +0000 (23:24 +0200)] 
redis: add automatic trimming support for streams

9 months agoredis: implement XADD stream support
Sascha Steinbiss [Tue, 11 Jun 2024 11:14:00 +0000 (13:14 +0200)] 
redis: implement XADD stream support

Ticket: #7082

9 months agouserguide: fix integer keyword matches list format 12013/head
Juliana Fajardini [Wed, 23 Oct 2024 04:11:55 +0000 (21:11 -0700)] 
userguide: fix integer keyword matches list format

List wasn't being properly rendered.

9 months agorust/applayer: use c_int as return type for get_info_by_id 12009/head
Jason Ish [Tue, 22 Oct 2024 16:46:13 +0000 (10:46 -0600)] 
rust/applayer: use c_int as return type for get_info_by_id

Rust was using i8 as the return type, while C uses int. As of Rust
1.82, the return value is turned to garbage over the FFI boundary.

Ticket: #7338

9 months agoeve/schema: add missing field "code" anomaly events
Jason Ish [Tue, 22 Oct 2024 16:26:22 +0000 (10:26 -0600)] 
eve/schema: add missing field "code" anomaly events

9 months agoeve/tls: use BIT_U64 for flags 12004/head
Jason Ish [Mon, 21 Oct 2024 15:30:37 +0000 (09:30 -0600)] 
eve/tls: use BIT_U64 for flags

Minor cleanup.

9 months agoeve/tls: remove unused SC_ATOMIC_EXTERN
Jason Ish [Fri, 18 Oct 2024 15:14:31 +0000 (09:14 -0600)] 
eve/tls: remove unused SC_ATOMIC_EXTERN

9 months agosuricata.yaml: add missing custom tls fields
Jason Ish [Fri, 18 Oct 2024 15:11:22 +0000 (09:11 -0600)] 
suricata.yaml: add missing custom tls fields

Also update the suricata.yaml in the userguide.