]> git.ipfire.org Git - thirdparty/suricata.git/log
thirdparty/suricata.git
14 months agodetect/http-server-body: clean up tests 11139/head
Philippe Antoine [Thu, 23 May 2024 13:55:24 +0000 (15:55 +0200)] 
detect/http-server-body: clean up tests

Ticket: 4083

14 months agodetect: unify functions for multi-buffer
Philippe Antoine [Thu, 8 Feb 2024 08:43:45 +0000 (09:43 +0100)] 
detect: unify functions for multi-buffer

Ticket: 6575

Multi buffers keywords now use a single registration function
DetectAppLayerMultiRegister with a GetBuffer argument.

This GetBuffer function pointer is similar to the ones used by
single-buffer keyword, except that it takes an additional
parameter which is the index of the buffer to get.
Under the hood, an anonymous union between these 2 functions
pointers types is used.

In the end, this deduplicates code, especially the calls to
DetectEngineContentInspection

14 months agodetect/template: make template use DetectEngineInspectBufferGeneric
Philippe Antoine [Thu, 8 Feb 2024 13:31:20 +0000 (14:31 +0100)] 
detect/template: make template use DetectEngineInspectBufferGeneric

14 months agoci: fix and test with Wunused-macros
Philippe Antoine [Thu, 11 Apr 2024 12:49:10 +0000 (14:49 +0200)] 
ci: fix and test with Wunused-macros

Ticket: 6937

14 months agoclean: remove unused struct definitions 11120/head
Philippe Antoine [Wed, 22 May 2024 13:33:44 +0000 (15:33 +0200)] 
clean: remove unused struct definitions

Found with
git grep "typedef struct" src/ | awk '{print $3}' | sort |
uniq | sed 's/_$//' | while read i; do
echo -n $i; git grep $i | wc -l; done | awk '$2 < 3'

Ticket: 4083

14 months agoapp-layer: Set sc_errno upon error return
Richard McConnell [Thu, 16 May 2024 09:04:24 +0000 (10:04 +0100)] 
app-layer: Set sc_errno upon error return

Bug: https://redmine.openinfosecfoundation.org/issues/6782

Callers to these allocators often use ``sc_errno`` to provide context of
the error. And in the case of the above bug, they return ``sc_errno``,
but as it has not been set ``sc_errno = 0; == SC_OK``.

This patch simply sets this variable to ensure there is context provided
upon error.

14 months agodetect/http-host: clean up tests
Victor Julien [Wed, 22 May 2024 07:06:06 +0000 (09:06 +0200)] 
detect/http-host: clean up tests

14 months agopcap-log: use correct pkthdr size for limit enforcement
Victor Julien [Tue, 21 May 2024 12:13:11 +0000 (14:13 +0200)] 
pcap-log: use correct pkthdr size for limit enforcement

The on-disk pcap pkthdr is 16 bytes. This was calculated using
`sizeof(struct pcap_pkthdr)`, which is 24 bytes on 64 bit Linux. On
Macos, it's even worse, as a comment field grows the struct to 280
bytes.

Address this by hardcoding the value of 16.

Bug: #7037.

14 months agopcap-log: minor cleanups
Victor Julien [Tue, 21 May 2024 05:01:15 +0000 (07:01 +0200)] 
pcap-log: minor cleanups

14 months agopcap-log: minor cleanup
Victor Julien [Mon, 20 May 2024 20:13:37 +0000 (22:13 +0200)] 
pcap-log: minor cleanup

Use same pointer to one location consistently.

14 months agopcap-log: always pass 'comp' to PcapWrite
Victor Julien [Mon, 20 May 2024 18:40:22 +0000 (20:40 +0200)] 
pcap-log: always pass 'comp' to PcapWrite

The variable is always available.

14 months agopcap-log: rename connp to comp
Victor Julien [Mon, 20 May 2024 18:39:36 +0000 (20:39 +0200)] 
pcap-log: rename connp to comp

Matches other variable names for the compression settings.

14 months agopcap-log: don't check variable that is never set
Victor Julien [Mon, 20 May 2024 18:38:26 +0000 (20:38 +0200)] 
pcap-log: don't check variable that is never set

`rotate` was never modified.

14 months agotime: only consider packet threads
Victor Julien [Mon, 20 May 2024 20:09:06 +0000 (22:09 +0200)] 
time: only consider packet threads

In offline mode, a timestamp is kept per thread, and the lowest
timestamp of the active threads is used. This was also considering the
non-packet threads, which could lead to the used timestamp being further
behind that needed. This would happen at the start of the program, as
the non-packet threads were set up the same way as the packet threads.

This patch both no longer sets up the timestamp for non-packet threads
as well as not considering non-packet threads during timestamp
retrieval.

Fixes: 6f560144c1b9 ("time: improve offline time handling")
Bug: #7034.

14 months agoflow: use debug validate macro 11112/head
Shivani Bhardwaj [Tue, 21 May 2024 11:51:53 +0000 (17:21 +0530)] 
flow: use debug validate macro

14 months agoflow: add defensive check on memuse
Shivani Bhardwaj [Tue, 21 May 2024 11:50:46 +0000 (17:20 +0530)] 
flow: add defensive check on memuse

14 months agotcp: use bool wherever possible
Shivani Bhardwaj [Tue, 21 May 2024 11:50:19 +0000 (17:20 +0530)] 
tcp: use bool wherever possible

14 months agoflow: use bool wherever possible
Shivani Bhardwaj [Tue, 21 May 2024 11:49:03 +0000 (17:19 +0530)] 
flow: use bool wherever possible

14 months agoflow: remove unneeded else
Shivani Bhardwaj [Tue, 21 May 2024 11:48:21 +0000 (17:18 +0530)] 
flow: remove unneeded else

14 months agoflow: minor loop cleanups
Shivani Bhardwaj [Tue, 21 May 2024 11:44:34 +0000 (17:14 +0530)] 
flow: minor loop cleanups

14 months agohttp: fix nul deref on memcap reached
Philippe Antoine [Fri, 17 May 2024 07:39:52 +0000 (09:39 +0200)] 
http: fix nul deref on memcap reached

HttpRangeOpenFileAux may return NULL in different cases, including
when memcap is reached.
But is only caller did not check it before calling HttpRangeAppendData
which would dereference the NULL value.

Ticket: 7029

14 months agoeve/schema: add tls.subjectaltname fields
Shivani Bhardwaj [Thu, 4 Apr 2024 10:49:56 +0000 (16:19 +0530)] 
eve/schema: add tls.subjectaltname fields

Feature 5234

14 months agooutput/json: log tls subjectaltname
Shivani Bhardwaj [Thu, 4 Apr 2024 09:52:01 +0000 (15:22 +0530)] 
output/json: log tls subjectaltname

Feature 5234

14 months agodoc: add description about tls.subjectaltname
Shivani Bhardwaj [Mon, 1 Apr 2024 11:40:51 +0000 (17:10 +0530)] 
doc: add description about tls.subjectaltname

Feature 5234

14 months agodetect/tls-subjectaltname: add sticky buffer
Shivani Bhardwaj [Thu, 4 Apr 2024 10:58:59 +0000 (16:28 +0530)] 
detect/tls-subjectaltname: add sticky buffer

Add TLS SubjectAltName sticky buffer. It is implemented as multi-buffer.

Feature 5234

14 months agotls: store list of subject alternative names
Shivani Bhardwaj [Tue, 26 Mar 2024 11:04:48 +0000 (16:34 +0530)] 
tls: store list of subject alternative names

So far, the SANs were available as a part of IssuerDN via x509_parser
crate but SANs were not available to the SSLState* to be directly used
to setup and match against a sticky buffer.
Expose it to SSLStateConnp.

Feature 5234

14 months agorust: rename .cargo/config to .cargo/config.toml 11095/head
Jason Ish [Thu, 16 May 2024 16:42:53 +0000 (10:42 -0600)] 
rust: rename .cargo/config to .cargo/config.toml

Addresses this warning from the Rust compiler:

warning: `../rust/.cargo/config` is deprecated in favor of `config.toml`
note: if you need to support cargo 1.38 or earlier, you can symlink `config` to `config.toml`

14 months agodetect-lua: small cleanups
Jason Ish [Tue, 7 May 2024 20:50:37 +0000 (14:50 -0600)] 
detect-lua: small cleanups

- remove unused headers
- cleanup/rename flags

14 months agodetect/lua: don't treat a crashed script as no match
Jason Ish [Tue, 7 May 2024 17:09:30 +0000 (11:09 -0600)] 
detect/lua: don't treat a crashed script as no match

If a rule script crashed, the return value was treated as a no
match. This would make a negation of the rule match and alert.

Instead cleanup and exit early if the rule script crashed and don't
run negation logic.

A stat, detect.lua.errors has been added to count how many times a
script crashes.

Also consolidates the running of the Lua script and return value
handling to a common function.

Bug: #6940

14 months agoftp: protocol detection avoiding FP on POP3
Philippe Antoine [Thu, 2 Feb 2023 10:03:56 +0000 (11:03 +0100)] 
ftp: protocol detection avoiding FP on POP3

14 months agopop3: protocol detection
Philippe Antoine [Thu, 2 Feb 2023 10:12:08 +0000 (11:12 +0100)] 
pop3: protocol detection

Ticket: #6366

14 months agosmtp: exit data mode if data command was rejected
Philippe Antoine [Sat, 30 Mar 2024 14:05:26 +0000 (15:05 +0100)] 
smtp: exit data mode if data command was rejected

And the server was advertising pipelining.

Ticket: 6906

14 months agodetect: checks for space in http.protcol keyword
Philippe Antoine [Mon, 2 May 2022 11:39:32 +0000 (13:39 +0200)] 
detect: checks for space in http.protcol keyword

14 months agohttp: configures libhtp to allow spaces in uri
Philippe Antoine [Thu, 2 May 2019 08:49:29 +0000 (10:49 +0200)] 
http: configures libhtp to allow spaces in uri

Ticket: #2881

14 months agodecode/gre: decode arp packets 11086/head
Giuseppe Longo [Mon, 18 Mar 2024 10:02:16 +0000 (11:02 +0100)] 
decode/gre: decode arp packets

14 months agodoc: add arp changes
Giuseppe Longo [Sun, 3 Mar 2024 17:25:48 +0000 (18:25 +0100)] 
doc: add arp changes

14 months agooutput-json/arp: implement logger
Giuseppe Longo [Sun, 3 Mar 2024 17:12:03 +0000 (18:12 +0100)] 
output-json/arp: implement logger

This adds a logger for ARP, disabled by default.

Ticket #6827

14 months agooutput/json: check 5-tuple values prior to logging
Giuseppe Longo [Wed, 20 Mar 2024 17:31:42 +0000 (18:31 +0100)] 
output/json: check 5-tuple values prior to logging

This commit enhances the JSON output by introducing a feature for conditional port logging.
Now, port logging is dependent on the underlying protocol
(such as TCP, UDP, or SCTP), where port information is pertinent, while it
avoids unnecessary logging for protocols where a port is not utilized (e.g. ARP).

Furthermore, this update ensures that IP addresses and the protocol have
meaningful values set, rather than being logged as empty strings.

These changes will make each log entry more precise, eliminating cases where
5-tuple fields are empty or set to zero, indicating the absence of a field.

14 months agooutput/json: make JSONFormatAndAddMACAddr public
Giuseppe Longo [Sun, 3 Mar 2024 06:31:07 +0000 (07:31 +0100)] 
output/json: make JSONFormatAndAddMACAddr public

This change exposes 'JSONFormatAndAddMACAddr' as a public function,
allowing it to be reused across modules, such as the ARP logger, for logging
MAC addresses extracted from ARP packets.

14 months agodecode/arp: implement decoder
Giuseppe Longo [Sat, 2 Mar 2024 17:50:27 +0000 (18:50 +0100)] 
decode/arp: implement decoder

This adds a decoder for ARP.

Ticket #6827

14 months agobase64: re-add the check for destination space
Shivani Bhardwaj [Wed, 15 May 2024 09:45:47 +0000 (15:15 +0530)] 
base64: re-add the check for destination space

Cover all the calls to DecodeBase64Block with the check for enough
space. Found by the recently introduced fuzz target.

Bug 7028

Fixes: c0bc43c39318 ("util/base64: use decoder fns per RFC")
14 months agogithub-actions: set bpf to icmp for af-packet
Victor Julien [Wed, 15 May 2024 05:03:05 +0000 (07:03 +0200)] 
github-actions: set bpf to icmp for af-packet

14 months agogithub-actions: add pcap live test script and jobs
Victor Julien [Tue, 14 May 2024 19:44:49 +0000 (21:44 +0200)] 
github-actions: add pcap live test script and jobs

Asan and coverage jobs.

14 months agogithub-actions: unix pcap coverage run
Victor Julien [Tue, 14 May 2024 18:25:07 +0000 (20:25 +0200)] 
github-actions: unix pcap coverage run

To increase code coverage.

14 months agogithub-actions: add unix socket runmode script and job
Victor Julien [Tue, 14 May 2024 14:31:11 +0000 (16:31 +0200)] 
github-actions: add unix socket runmode script and job

Runs with ASAN.

14 months agogithub-actions: add ASAN enabled Ubuntu 24.04 build of live tests
Victor Julien [Tue, 14 May 2024 13:37:08 +0000 (15:37 +0200)] 
github-actions: add ASAN enabled Ubuntu 24.04 build of live tests

14 months agodetect: add options to app-layer-protocol keyword 11084/head
Philippe Antoine [Thu, 25 Jan 2024 20:46:35 +0000 (21:46 +0100)] 
detect: add options to app-layer-protocol keyword

Ticket: 4921

app-layer-protocol keyword accept an optional mode to precise
which protocol we want to match: toclient, toserver, final,
or original

14 months agoRevert "rust: temporary: disable debug assertions"
Philippe Antoine [Tue, 14 May 2024 09:18:27 +0000 (11:18 +0200)] 
Revert "rust: temporary: disable debug assertions"

This reverts commit 14ab9aa763d44dda0f4c831047966b595f5630c1.

14 months agorust/probing: safety check for null input
Philippe Antoine [Tue, 7 May 2024 14:33:00 +0000 (16:33 +0200)] 
rust/probing: safety check for null input

Ticket: 7013

Done consistently for all protocols

This may change some protocols behaviors which failed early
if they found there was not enough data...

14 months agorust: return empty slice without using from_raw_parts
Philippe Antoine [Tue, 7 May 2024 08:18:14 +0000 (10:18 +0200)] 
rust: return empty slice without using from_raw_parts

As this triggers rustc 1.78
unsafe precondition(s) violated: slice::from_raw_parts requires
the pointer to be aligned and non-null,
and the total size of the slice not to exceed `isize::MAX`

Ticket: 7013

14 months agotests: do not bother to free a null pointer
Philippe Antoine [Tue, 7 May 2024 08:17:33 +0000 (10:17 +0200)] 
tests: do not bother to free a null pointer

Ticket: #7013

14 months agogithub-actions: make sure unix socket is created in dpdk tests 11076/head
Victor Julien [Tue, 14 May 2024 10:27:22 +0000 (12:27 +0200)] 
github-actions: make sure unix socket is created in dpdk tests

14 months agogithub-actions: expand af-packet live test with more unix commands
Victor Julien [Tue, 14 May 2024 04:47:13 +0000 (06:47 +0200)] 
github-actions: expand af-packet live test with more unix commands

14 months agohostbits: release use_cnt for unix (add|remove)-hostbit
Victor Julien [Tue, 14 May 2024 04:46:25 +0000 (06:46 +0200)] 
hostbits: release use_cnt for unix (add|remove)-hostbit

Commands would leave use_cnt incremented, never decrementing them. This
would lead to a asserting triggering at shutdown.

Bug: #7020.

14 months agodevice: don't crash on unix command 'iface-bypassed-stat'
Victor Julien [Tue, 14 May 2024 04:45:30 +0000 (06:45 +0200)] 
device: don't crash on unix command 'iface-bypassed-stat'

In the default config iface bypass support is not enabled,
and storage API not initialized for it. Using it will lead to a crash.

This commit first checks if the device storage API is initialized.

Bug: #7022.

14 months agowebsocket: fix opcodes values for ping/pong 11072/head
Philippe Antoine [Tue, 14 May 2024 11:32:04 +0000 (13:32 +0200)] 
websocket: fix opcodes values for ping/pong

And also set close

Ticket: 7025

14 months agodns: set tx id for frames
Philippe Antoine [Fri, 26 Apr 2024 19:05:36 +0000 (21:05 +0200)] 
dns: set tx id for frames

14 months agoframes: rust API makes tx_id explicit
Philippe Antoine [Fri, 26 Apr 2024 08:45:08 +0000 (10:45 +0200)] 
frames: rust API makes tx_id explicit

And set it right for SIP and websocket,
so that relevant tx app-layer metadata gets logged.

Ticket: 6973

14 months agodetect: log relevant frames app-layer metadata
Philippe Antoine [Fri, 19 Apr 2024 07:57:04 +0000 (09:57 +0200)] 
detect: log relevant frames app-layer metadata

Ticket: 6973

Completes commit 2b4e10224eaebb613352e9b82556b60035d032a1

14 months agofuzz: add target for DecodeBase64
Shivani Bhardwaj [Tue, 6 Jun 2023 11:47:32 +0000 (17:17 +0530)] 
fuzz: add target for DecodeBase64

Task 6050

14 months agodoc: add note about fast_pattern w base64_data
Shivani Bhardwaj [Fri, 22 Mar 2024 06:07:39 +0000 (11:37 +0530)] 
doc: add note about fast_pattern w base64_data

Bug 5220

14 months agobase64_data: reject fast_pattern use
Shivani Bhardwaj [Thu, 14 Mar 2024 10:43:55 +0000 (16:13 +0530)] 
base64_data: reject fast_pattern use

If a rule has fast_pattern on base64_data, it is anyway not applied, so,
consider any such rules invalid.

Bug 5220

14 months agoconfig/ja3: Eliminate warnings when JA3 is disabled 11055/head
Jeff Lucovsky [Thu, 9 May 2024 14:21:48 +0000 (10:21 -0400)] 
config/ja3: Eliminate warnings when JA3 is disabled

This commit eliminates warnings when either ja3, ja4 or both are
disabled.

14 months agorust: temporary: disable debug assertions 11046/head
Jason Ish [Tue, 7 May 2024 21:43:10 +0000 (15:43 -0600)] 
rust: temporary: disable debug assertions

14 months agogithub: update pull request template
Jason Ish [Tue, 7 May 2024 22:33:46 +0000 (16:33 -0600)] 
github: update pull request template

Update the pull request template to suggest providing a link to the
SV/LIBHTP pull request as this aides in cross linking.

Also change the way to provide the link to the Redmine ticket, as it
often results in linking to our Redmine, and add a checkbox for the
creation of a ticket.

14 months agobundle.sh: accept more forms of a branch name
Jason Ish [Tue, 7 May 2024 22:28:07 +0000 (16:28 -0600)] 
bundle.sh: accept more forms of a branch name

For GitHub, add the following branch name formats:
- https://github.com/OISF/libhtp/pull/123
- OISF/libhtp#123

14 months agodoc: update normalization notes 11027/head
jason taylor [Fri, 19 Apr 2024 21:50:27 +0000 (21:50 +0000)] 
doc: update normalization notes

Ticket: #6781

Signed-off-by: jason taylor <jtfas90@gmail.com>
14 months agodoc: add http.connection ref and fix location
jason taylor [Fri, 19 Apr 2024 20:09:59 +0000 (20:09 +0000)] 
doc: add http.connection ref and fix location

Signed-off-by: jason taylor <jtfas90@gmail.com>
14 months agoeve/stats: add description for ips
Shivani Bhardwaj [Tue, 2 Apr 2024 10:25:01 +0000 (15:55 +0530)] 
eve/stats: add description for ips

Ticket 6434

14 months agoeve/stats: add description for transactions
Shivani Bhardwaj [Tue, 2 Apr 2024 09:57:55 +0000 (15:27 +0530)] 
eve/stats: add description for transactions

Ticket 6434

15 months agosnmp: remove community keyword unit test 11023/head
Philippe Antoine [Sat, 4 May 2024 19:37:20 +0000 (21:37 +0200)] 
snmp: remove community keyword unit test

Ticket: 3725

This test was moved to suricata-verify snmp-community

15 months agogithub-actions: bump actions/upload-artifact from 4.3.1 to 4.3.3
dependabot[bot] [Wed, 1 May 2024 19:23:49 +0000 (19:23 +0000)] 
github-actions: bump actions/upload-artifact from 4.3.1 to 4.3.3

Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.1 to 4.3.3.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/5d5d22a31266ced268874388b861e4b58bb5c2f3...65462800fd760344b1a7b4382951275a0abb4808)

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

Signed-off-by: dependabot[bot] <support@github.com>
15 months agogithub-actions: bump github/codeql-action from 3.24.9 to 3.25.3 11015/head
dependabot[bot] [Wed, 1 May 2024 19:23:45 +0000 (19:23 +0000)] 
github-actions: bump github/codeql-action from 3.24.9 to 3.25.3

Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.24.9 to 3.25.3.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Commits](https://github.com/github/codeql-action/compare/v3.24.9...v3.25.3)

---
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>
15 months agogithub-actions: bump actions/download-artifact from 4.1.4 to 4.1.7
dependabot[bot] [Wed, 1 May 2024 19:23:20 +0000 (19:23 +0000)] 
github-actions: bump actions/download-artifact from 4.1.4 to 4.1.7

Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 4.1.4 to 4.1.7.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/c850b930e6ba138125429b7e5c93fc707a7f8427...65a9edc5881444af0b9093a5e628f2fe47ea3b2e)

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

Signed-off-by: dependabot[bot] <support@github.com>
15 months agogithub-actions: bump codecov/codecov-action from 4.1.1 to 4.3.1
dependabot[bot] [Wed, 1 May 2024 19:23:17 +0000 (19:23 +0000)] 
github-actions: bump codecov/codecov-action from 4.1.1 to 4.3.1

Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 4.1.1 to 4.3.1.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/c16abc29c95fcf9174b58eb7e1abf4c866893bc8...5ecb98a3c6b747ed38dc09f787459979aebb39be)

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

Signed-off-by: dependabot[bot] <support@github.com>
15 months agogithub-actions: convert dpdk tests to use script
Victor Julien [Wed, 1 May 2024 10:45:09 +0000 (12:45 +0200)] 
github-actions: convert dpdk tests to use script

15 months agogithub-actions: add dpdk ids live test script
Victor Julien [Wed, 1 May 2024 08:51:07 +0000 (10:51 +0200)] 
github-actions: add dpdk ids live test script

15 months agogithub-ci: add af-packet and dpdk codecov builds
Victor Julien [Tue, 23 Apr 2024 15:19:32 +0000 (17:19 +0200)] 
github-ci: add af-packet and dpdk codecov builds

Adds live tests for DPDK and AF_PACKET, with support for code coverage.

15 months agoutil/base64: remove coverity reported dead code
Shivani Bhardwaj [Thu, 25 Apr 2024 14:17:01 +0000 (19:47 +0530)] 
util/base64: remove coverity reported dead code

New defect(s) Reported-by: Coverity Scan
Showing 1 of 1 defect(s)

** CID 1596621:  Control flow issues  (DEADCODE)
/src/util-base64.c: 238 in DecodeBase64RFC4648()

________________________________________________________________________________________________________
*** CID 1596621:  Control flow issues  (DEADCODE)
/src/util-base64.c: 238 in DecodeBase64RFC4648()
232         DEBUG_VALIDATE_BUG_ON(bbidx == B64_BLOCK);
233
234         /* Handle any leftover bytes by adding padding to them as long as they do not
235          * violate the destination buffer size */
236         if (bbidx > 0) {
237             padding = bbidx > 1 ? B64_BLOCK - bbidx : 2;
>>>     CID 1596621:  Control flow issues  (DEADCODE)
>>>     Execution cannot reach the expression "3U" inside this statement: "numDecoded_blk = 3U - ((pad...".
238             uint32_t numDecoded_blk = ASCII_BLOCK - (padding < B64_BLOCK ? padding : ASCII_BLOCK);
239             if (dest_size < *decoded_bytes + numDecoded_blk) {
240                 SCLogDebug("Destination buffer full");
241                 return BASE64_ECODE_BUF;
242             }
243             /* Decode base-64 block into ascii block and move pointer */

Also, add a comment explaining the padding logic for leftover data.

Bug 6985

15 months agodetect/iprep: update doc about 0 value 11000/head 11013/head
Victor Julien [Thu, 25 Apr 2024 17:34:39 +0000 (19:34 +0200)] 
detect/iprep: update doc about 0 value

A value of 0 was already allowed by the rule parser, but didn't
actually work.

Bug: #6834.

15 months agodetect/iprep: allow 0 as a reputation value
Victor Julien [Thu, 25 Apr 2024 15:07:52 +0000 (17:07 +0200)] 
detect/iprep: allow 0 as a reputation value

Rules would allow checking against value 0, but internally the value
was used to indicate "no value". To address this, the internals now
return negative values for not found. This way value 0 can be fully
supported.

Bug: #6834.

15 months agodetect/iprep: minor code cleanups
Victor Julien [Thu, 25 Apr 2024 12:09:21 +0000 (14:09 +0200)] 
detect/iprep: minor code cleanups

15 months agosdp: fix logging medias 10994/head
Philippe Antoine [Sat, 27 Apr 2024 20:06:09 +0000 (22:06 +0200)] 
sdp: fix logging medias

As introduced by bff790b6ac6f0e5ddf6bd0fe0085881473935c2c

Also handles errors in the caller

Ticket: 6994

15 months agorust/dns: visibility cleanups 10976/head
Jason Ish [Fri, 26 Apr 2024 18:28:25 +0000 (12:28 -0600)] 
rust/dns: visibility cleanups

Remove pub from functions that don't require it.

15 months agorust/dns: ffi naming and visibility cleanups
Jason Ish [Fri, 26 Apr 2024 18:23:44 +0000 (12:23 -0600)] 
rust/dns: ffi naming and visibility cleanups

- Remove no_mangle and pub from FFI functions that are only accessed
  with a function pointer.
- Rename all no_mangle FFI functions to our C naming scheme.

15 months agogithub-ci: remove cocci from fedora 39 build 10971/head
Jason Ish [Fri, 26 Apr 2024 16:13:11 +0000 (10:13 -0600)] 
github-ci: remove cocci from fedora 39 build

Cocci on Fedora 39+ gets stuck for some reason. Cocci has been moved
to a new Ubuntu 24.04 build.

15 months agogithub-ci: add ubuntu 24.04 build with cocci
Jason Ish [Fri, 26 Apr 2024 16:02:26 +0000 (10:02 -0600)] 
github-ci: add ubuntu 24.04 build with cocci

Rather basic 24.04 build for now, but use Cocci as Cocci is working
properly here, but not working in the latest Fedora releases.

15 months agodoc: update flowbits information
jason taylor [Fri, 26 Apr 2024 16:14:22 +0000 (16:14 +0000)] 
doc: update flowbits information

Ticket: #6991

Signed-off-by: jason taylor <jtfas90@gmail.com>
15 months agoci: fix macos build
Philippe Antoine [Tue, 23 Apr 2024 21:29:19 +0000 (23:29 +0200)] 
ci: fix macos build

use brew instead of pip
limit the number of jobs for make
set a prefix where we can install
use brew flags for library finding

15 months agodecode/tcp: improve pointer hygene
Victor Julien [Sat, 20 Apr 2024 10:57:41 +0000 (12:57 +0200)] 
decode/tcp: improve pointer hygene

Avoid NULL pointer calculations.

15 months agodecode/icmpv4: rename ICMPV4_GET_EMB_IPV4 to PacketGetICMPv4EmbIPv4
Victor Julien [Thu, 11 Apr 2024 15:37:15 +0000 (17:37 +0200)] 
decode/icmpv4: rename ICMPV4_GET_EMB_IPV4 to PacketGetICMPv4EmbIPv4

Follows function nameing style.

Ticket: #5517.

15 months agodecode/icmpv6: store embedded ip6h ptr as offset
Victor Julien [Thu, 11 Apr 2024 15:28:12 +0000 (17:28 +0200)] 
decode/icmpv6: store embedded ip6h ptr as offset

Reduces direct pointer usage and reduces Packet size.

Ticket: #6938.

15 months agodecode/icmpv4: store embedded ip4h ptr as offset
Victor Julien [Thu, 11 Apr 2024 15:12:55 +0000 (17:12 +0200)] 
decode/icmpv4: store embedded ip4h ptr as offset

Reduces direct pointer usage and reduces Packet size.

Ticket: #6938.

15 months agodecode/icmpv4: put embedded pointer first
Victor Julien [Thu, 11 Apr 2024 14:51:12 +0000 (16:51 +0200)] 
decode/icmpv4: put embedded pointer first

Reduce gaps in the structure.

Ticket: #6938.

15 months agodecode/tcp: reduce TCPVars by turning bools into bitfields
Victor Julien [Thu, 11 Apr 2024 14:44:16 +0000 (16:44 +0200)] 
decode/tcp: reduce TCPVars by turning bools into bitfields

To reduce Packet size and make similar fields follow the same pattern.

Ticket: #6938.

15 months agoaf-packet: fix eBPF/XDP compilation
Victor Julien [Tue, 9 Apr 2024 13:38:08 +0000 (15:38 +0200)] 
af-packet: fix eBPF/XDP compilation

15 months agodecode/tcp: move tcph into L4 packet data
Victor Julien [Wed, 3 Apr 2024 05:00:53 +0000 (07:00 +0200)] 
decode/tcp: move tcph into L4 packet data

To reduce Packet size.

Ticket: #6938.

15 months agodecode/udp: move udph into L4 packet data
Victor Julien [Tue, 2 Apr 2024 15:47:10 +0000 (17:47 +0200)] 
decode/udp: move udph into L4 packet data

To recude Packet size.

Ticket: #6938.

15 months agodecode/ethernet: move ethh into L2 section
Victor Julien [Tue, 2 Apr 2024 08:18:57 +0000 (10:18 +0200)] 
decode/ethernet: move ethh into L2 section

L2 section similar to L3 and L4 sections.

Ticket: #6938.

15 months agodecode/pppoe: localize pppoedh pointer
Victor Julien [Fri, 29 Mar 2024 18:21:44 +0000 (19:21 +0100)] 
decode/pppoe: localize pppoedh pointer

Remove from Packet struct as there were no users of it.

Ticket: #6938.