]> git.ipfire.org Git - thirdparty/freeradius-server.git/log
thirdparty/freeradius-server.git
28 hours agoFormat PGP public key block in SECURITY master
Arran Cudbard-Bell [Sun, 9 Aug 2026 05:13:26 +0000 (01:13 -0400)] 
Format PGP public key block in SECURITY

Added PGP public key block for security contacts.

2 days agoPass argument names to logging functions in preparation for discreet argument logging developer/arr2036
Arran Cudbard-Bell [Sat, 8 Aug 2026 03:24:42 +0000 (23:24 -0400)] 
Pass argument names to logging functions in preparation for discreet argument logging

2 days agoci: flag multi-server profiling regressions in the job summary (#5908)
Marc-Andre Casavant [Fri, 7 Aug 2026 15:35:17 +0000 (11:35 -0400)] 
ci: flag multi-server profiling regressions in the job summary (#5908)

* ci: publish sends commit subject and branch ref for the run picker

* Fix GITHUB_REF_NAME check in publish-profiling-results.sh

---------

Co-authored-by: Arran Cudbard-Bell <a.cudbardb@freeradius.org>
2 days agotypo: "ownership" and "directory" -> "socket" (#5916)
Ethan Thompson [Fri, 7 Aug 2026 15:19:01 +0000 (11:19 -0400)] 
typo: "ownership" and "directory" -> "socket" (#5916)

* typo: Fixed typo for "ownership" and corrected "directory" to "socket" in this context

Signed-off-by: ethan-thompson <ethan.thompson@networkradius.com>
* Update error messages for socket permissions and ownership

---------

Signed-off-by: ethan-thompson <ethan.thompson@networkradius.com>
Co-authored-by: Arran Cudbard-Bell <a.cudbardb@freeradius.org>
3 days agoRemove set but not used variable developer/ndptech
Nick Porter [Thu, 6 Aug 2026 10:32:08 +0000 (11:32 +0100)] 
Remove set but not used variable

4 days agoAdd crl to protocols list in Makefile
Nick Porter [Thu, 6 Aug 2026 09:33:32 +0000 (10:33 +0100)] 
Add crl to protocols list in Makefile

Needed to install the dictionary

4 days agoBetter suppression of compiler warnings
Nick Porter [Wed, 5 Aug 2026 09:00:41 +0000 (10:00 +0100)] 
Better suppression of compiler warnings

4 days agoProperly clean up docker images
Nick Porter [Thu, 6 Aug 2026 07:33:29 +0000 (08:33 +0100)] 
Properly clean up docker images

Previously only an image matching the current Git SHA would be removed,
leaving a trail of old images which are extremely unlikely to ever be
needed again.

4 days agoPass project to multi-server test config builder
Nick Porter [Wed, 5 Aug 2026 19:17:51 +0000 (20:17 +0100)] 
Pass project to multi-server test config builder

So logging to correctly named file / socket can be easily configured.

4 days agoExit FR when the load listner has completed
Nick Porter [Wed, 5 Aug 2026 14:22:53 +0000 (15:22 +0100)] 
Exit FR when the load listner has completed

4 days agoUse common template for load listener config
Nick Porter [Wed, 5 Aug 2026 14:21:32 +0000 (15:21 +0100)] 
Use common template for load listener config

4 days agoUpdate for antora complaints. Fixes #5914 developer/alandekok
Alan T. DeKok [Wed, 5 Aug 2026 20:17:54 +0000 (16:17 -0400)] 
Update for antora complaints.  Fixes #5914

4 days agodocs-v4: add interval.adoc file to antora index. Updated relevant nav.adoc and policy...
nolade [Tue, 4 Aug 2026 19:34:39 +0000 (15:34 -0400)] 
docs-v4: add interval.adoc file to antora index. Updated relevant nav.adoc and policy_table.adoc files to reference interval.adoc.
This updated PR replaces PR #5883.

5 days agouse unlang_call_push() instead of virtual_server_push()
Alan T. DeKok [Wed, 5 Aug 2026 01:13:50 +0000 (21:13 -0400)] 
use unlang_call_push() instead of virtual_server_push()

5 days agoremove duplicate "packet debug"
Alan T. DeKok [Tue, 4 Aug 2026 22:28:41 +0000 (18:28 -0400)] 
remove duplicate "packet debug"

now that it's being printed in the "call" instruction.

This change also cleans up the output.  The previous functions
mostly did similar things (but not always), and were mostly called
from the same stages of packet processing (but not always)

5 days agoprint "Received" and "Sending" inside of "server ... { } blocks
Alan T. DeKok [Tue, 4 Aug 2026 22:22:02 +0000 (18:22 -0400)] 
print "Received" and "Sending" inside of "server ... { } blocks

which is a bit of a change from v3, but ends up being clearer for
the "v4 way".

Now when you "call" a virtual server, it prints out the received
packet (which might have been edited after it was received!).

This also makes the inner-tunnel processing much cleaner, as they
now print packets out in the same layout and format as packets
that are received from the network.  Previously, the inner-tunnel
debug was just gratuitously different.

5 days agoremove old comment
Alan T. DeKok [Tue, 4 Aug 2026 22:32:01 +0000 (18:32 -0400)] 
remove old comment

5 days agono need to manually print out inner packet code
Alan T. DeKok [Tue, 4 Aug 2026 22:19:27 +0000 (18:19 -0400)] 
no need to manually print out inner packet code

5 days agomove debug "Running foo bar { } from file baz"
Alan T. DeKok [Tue, 4 Aug 2026 20:16:20 +0000 (16:16 -0400)] 
move debug "Running foo bar { } from file baz"

to the main interpreter loop, which cleans up the debug output
a bit, and makes it easier to parse

5 days agodon't print module name when inside of call{}
Alan T. DeKok [Tue, 4 Aug 2026 19:49:54 +0000 (15:49 -0400)] 
don't print module name when inside of call{}

the debug output is confusing when it prints messages about the
virtual server, but the initial and final messages are prefixed
with the module name.

5 days agoadd log_request_packet() and LOG_PACKET_DEBUG
Alan T. DeKok [Tue, 4 Aug 2026 15:46:06 +0000 (11:46 -0400)] 
add log_request_packet() and LOG_PACKET_DEBUG

for debug logging of received packets, in a protocol-generic
manner.

5 days agoremove server/protocol.h, server/listen.h, and server/protocol.c
Alan T. DeKok [Tue, 4 Aug 2026 16:25:22 +0000 (12:25 -0400)] 
remove server/protocol.h, server/listen.h, and server/protocol.c

nothing in them is used, so we are removing them, and all references
to them.

This is (hopefully) the last vestiges of v3

5 days agotweak header includes in preparation for removing listen.h
Alan T. DeKok [Tue, 4 Aug 2026 16:20:55 +0000 (12:20 -0400)] 
tweak header includes in preparation for removing listen.h

5 days agouse "server foo" as the debug name, not just "foo"
Alan T. DeKok [Tue, 4 Aug 2026 15:28:38 +0000 (11:28 -0400)] 
use "server foo" as the debug name, not just "foo"

this ensures that the debug output is standardized

5 days agouse unlang_interpret_virtual_server()
Alan T. DeKok [Tue, 4 Aug 2026 15:15:22 +0000 (11:15 -0400)] 
use unlang_interpret_virtual_server()

5 days agoset packet->socket->af to AF_FR_VIRTUAL_SERVER on subrequest alloc
Alan T. DeKok [Tue, 4 Aug 2026 15:00:26 +0000 (11:00 -0400)] 
set packet->socket->af to AF_FR_VIRTUAL_SERVER on subrequest alloc

and use that in unlang_interpret_virtual_server().

When used with frame->prev.frame_call, it should significantly
shorten process to find the virtual server.  Instead of walking
back up all parent requests, and then walking back up the stack
for each request, it becomes largely an O(1) process most of
the time.

5 days agoadd and use unlang_interpret_virtual_server()
Alan T. DeKok [Tue, 4 Aug 2026 14:50:16 +0000 (10:50 -0400)] 
add and use unlang_interpret_virtual_server()

so that we abstract this all in one place

5 days agocache the call frame number, too.
Alan T. DeKok [Tue, 4 Aug 2026 14:03:49 +0000 (10:03 -0400)] 
cache the call frame number, too.

so that we don't need to walk back up the stack to find the
call stack with the virtual server.

5 days agotypo
Alan T. DeKok [Tue, 4 Aug 2026 14:03:31 +0000 (10:03 -0400)] 
typo

6 days agoadd (unused) function to print #fr_socket_t to a string
Alan T. DeKok [Tue, 4 Aug 2026 01:33:00 +0000 (21:33 -0400)] 
add (unused) function to print #fr_socket_t to a string

so that we can unify IPs, unix sockets, filenames, and virtual
servers.

this is mainly useful for "inner-tunnel" virtual servers, which
don't print much of anything useful right now.

6 days agoset fr_socket_t AF field, too
Alan T. DeKok [Tue, 4 Aug 2026 01:20:45 +0000 (21:20 -0400)] 
set fr_socket_t AF field, too

6 days agoglue EAP-PSK virtual server into antora
Alan T. DeKok [Tue, 4 Aug 2026 01:19:55 +0000 (21:19 -0400)] 
glue EAP-PSK virtual server into antora

6 days agorun through the auto-formatter
Alan T. DeKok [Tue, 4 Aug 2026 01:18:31 +0000 (21:18 -0400)] 
run through the auto-formatter

6 days agoformat for v4
Alan T. DeKok [Tue, 4 Aug 2026 01:17:54 +0000 (21:17 -0400)] 
format for v4

6 days agouse consistent comments for v4 auto-format
Alan T. DeKok [Tue, 4 Aug 2026 01:08:18 +0000 (21:08 -0400)] 
use consistent comments for v4 auto-format

6 days agoadd file and virtual server to fr_socket_t
Alan T. DeKok [Mon, 3 Aug 2026 16:48:32 +0000 (12:48 -0400)] 
add file and virtual server to fr_socket_t

in preparation for other cleanups

6 days agorename AF_FILE_BIO to AF_FR_FILENAME
Alan T. DeKok [Mon, 3 Aug 2026 16:05:37 +0000 (12:05 -0400)] 
rename AF_FILE_BIO to AF_FR_FILENAME

in preparation for adding AF_FR_VIRTUAL_SERVER

6 days agoprocess/eap_psk: find Password.PSK with the nested pair search
Arran Cudbard-Bell [Mon, 3 Aug 2026 23:49:30 +0000 (17:49 -0600)] 
process/eap_psk: find Password.PSK with the nested pair search

Password.PSK is a child of the Password container pair, so the
top-level fr_pair_find_by_da() never saw the pair policy had just
added, and every authentication was discarded with "No
control.Password.PSK".  The old module used password_find(), which
walks the tree.

6 days agoeapol_test: print more of the server log when a test fails
Arran Cudbard-Bell [Mon, 3 Aug 2026 23:26:56 +0000 (17:26 -0600)] 
eapol_test: print more of the server log when a test fails

40 lines rarely reaches back to the failing exchange.  Also print the
server log heading before the log contents rather than after.

6 days agoprocess/eap_psk: initialise the analyzer-flagged test outputs
Arran Cudbard-Bell [Mon, 3 Aug 2026 22:47:43 +0000 (16:47 -0600)] 
process/eap_psk: initialise the analyzer-flagged test outputs

The static analyzer does not model acutest_check_()'s return value
(variadic, so never inlined), so TEST_ASSERT on the producing calls
did not remove the garbage-value path.  Initialise the two outputs;
if a producing call ever fails to write, the comparison against the
known-answer value still fails.

6 days agoraddb: ship EAP-PSK disabled by default
Arran Cudbard-Bell [Mon, 3 Aug 2026 22:47:43 +0000 (16:47 -0600)] 
raddb: ship EAP-PSK disabled by default

EAP-PSK now requires the eap-psk virtual server, which is not enabled
by default, so an installed system failed config validation.  Comment
out the type entries and psk sections in the eap and eap_inner
modules; the enable instructions point at sites-available/eap-psk.

The eap_inner psk section also still set the removed 'identity'
config item; the commented-out replacement uses virtual_server.

6 days agoeapol_test: add an EAP-PSK failure test
Arran Cudbard-Bell [Mon, 3 Aug 2026 21:32:52 +0000 (15:32 -0600)] 
eapol_test: add an EAP-PSK failure test

The supplicant authenticates with the wrong pre-shared key, so MAC_P
verification fails and eapol_test must not succeed, while the server
must survive the exchange.

6 days agoprocess/eap_psk: use TEST_ASSERT for the calls which produce compared values
Arran Cudbard-Bell [Mon, 3 Aug 2026 21:32:51 +0000 (15:32 -0600)] 
process/eap_psk: use TEST_ASSERT for the calls which produce compared values

The static analyzer follows the error return of the crypto functions,
where the out-parameters are never written, into the comparisons, and
reports garbage-value reads.  Aborting the test when a producing call
fails removes the path, and comparing an output whose producing call
failed was never informative.

6 days agoprocess/eap_psk: keep the module target out of the all.mk that lists SUBMAKEFILES
Arran Cudbard-Bell [Mon, 3 Aug 2026 21:32:51 +0000 (15:32 -0600)] 
process/eap_psk: keep the module target out of the all.mk that lists SUBMAKEFILES

boiler.mk generates the install rule for a fragment's target after
recursing into its SUBMAKEFILES, so the TGT_INSTALLDIR := set by
eap_psk_tests.mk leaked into the install rule for process_eap_psk,
and the module was built but never installed.  Same mechanism CI
diagnosed on d5e3f21e3b for rlm_eap_psk before the module moved.

Follow the existing convention: the all.mk lists only SUBMAKEFILES,
and the module target lives in its own fragment.

6 days agorlm_eap_psk: select the PSK by peer identity via an eap-psk virtual server
Arran Cudbard-Bell [Mon, 3 Aug 2026 21:29:53 +0000 (15:29 -0600)] 
rlm_eap_psk: select the PSK by peer identity via an eap-psk virtual server

Implement full RFC 4764 credential-selection semantics: the peer's
asserted identity (ID_P) drives the PSK lookup, in a virtual server
with per-message policy sections, mirroring the EAP-AKA architecture.

The protocol state machine, message parsing, and cryptography move to
a new eap_psk process module.  The rlm_eap_psk submodule shrinks to
deriving the next Packet-Type from the session state, pushing the
request into the virtual server, and translating the reply Packet-Type
back into an EAP result.  Nothing happens in the outer server.

Sections: send Identity-Request (may override Server-Identity, same
pattern as EAP-AKA' network_name), recv Identity-Response (supplies
control.Password.PSK for the asserted Identity, capped at the RFC's
966 bytes), send Result-Indication, recv Result-Acknowledgement, and
send Success / send Failure.

Invalid messages are not processed (RFC 4764 Section 4.1); as a true
silent discard cannot be expressed through the EAP module, the session
ends with an EAP-Failure like every other EAP method.

6 days agorlm_eap_psk: add known-answer tests for the EAP-PSK crypto primitives
Arran Cudbard-Bell [Mon, 3 Aug 2026 19:57:06 +0000 (13:57 -0600)] 
rlm_eap_psk: add known-answer tests for the EAP-PSK crypto primitives

RFC 4764 publishes no test vectors, so the CMAC core is checked
against the RFC 4493 Section 4 vectors, and the EAP-PSK derivations
and EAX protected channel are checked against values computed with
hostap's independent implementation (commit f541de4).  Negative tests
cover tag, ciphertext, nonce, and header tampering.

6 days agoClean up EAP-PSK using v4 conventions
Arran Cudbard-Bell [Mon, 3 Aug 2026 19:30:30 +0000 (13:30 -0600)] 
Clean up EAP-PSK using v4 conventions

6 days agoCompare pointers to NULL...
Arran Cudbard-Bell [Mon, 3 Aug 2026 19:19:48 +0000 (13:19 -0600)] 
Compare pointers to NULL...

6 days agoAdd static assert in case someone renumbers the rcodes
Arran Cudbard-Bell [Mon, 3 Aug 2026 19:17:57 +0000 (13:17 -0600)] 
Add static assert in case someone renumbers the rcodes

6 days agoAdd the intended behaviour for unlang_io_subrequest_alloc namespaces
Arran Cudbard-Bell [Mon, 3 Aug 2026 19:00:58 +0000 (13:00 -0600)] 
Add the intended behaviour for unlang_io_subrequest_alloc namespaces

6 days agoCompare to NULL
Arran Cudbard-Bell [Mon, 3 Aug 2026 17:56:22 +0000 (11:56 -0600)] 
Compare to NULL

6 days agoUse a single error label
Arran Cudbard-Bell [Mon, 3 Aug 2026 17:55:13 +0000 (11:55 -0600)] 
Use a single error label

6 days agotls/bio: detach both dbuffs from the shared buffer in one helper
Arran Cudbard-Bell [Mon, 3 Aug 2026 17:47:19 +0000 (11:47 -0600)] 
tls/bio: detach both dbuffs from the shared buffer in one helper

The in/out dbuffs are bound to the same talloc buffer.  finalise,
finalise_bstr, and thread_local_clear each hand-rolled clearing the
buff pointers; a single helper now enforces the invariant that both
dbuffs forget the buffer together.

6 days agoRemove REQUEST_MASTER_NUM_STATES, the "fix" in db7dbce375 was incorrect, but nothing...
Arran Cudbard-Bell [Mon, 3 Aug 2026 16:58:23 +0000 (10:58 -0600)] 
Remove REQUEST_MASTER_NUM_STATES, the "fix" in db7dbce375 was incorrect, but nothing uses the macro

6 days agoSimpler fix for 40b0a25cfe
Arran Cudbard-Bell [Mon, 3 Aug 2026 16:56:40 +0000 (10:56 -0600)] 
Simpler fix for 40b0a25cfe

6 days agoreformat radiusd.conf.in and regenerate antora docs
Alan T. DeKok [Mon, 3 Aug 2026 14:40:37 +0000 (10:40 -0400)] 
reformat radiusd.conf.in and regenerate antora docs

6 days agopass value-box to file_allowed() function
Alan T. DeKok [Mon, 3 Aug 2026 14:39:52 +0000 (10:39 -0400)] 
pass value-box to file_allowed() function

6 days agopreserve SAFE_FOR_ANY inputs when parsing xlat arguments
Alan T. DeKok [Mon, 3 Aug 2026 14:23:25 +0000 (10:23 -0400)] 
preserve SAFE_FOR_ANY inputs when parsing xlat arguments

so that data which is taken from the configuration files does not
get mashed to any particular SAFE_FOR value

6 days agolib/util/dbuff: fix fr_dbuff_reset_talloc clobbering old base before fr_dbuff_update()
Alexander Bainbridge-Sedivy [Mon, 27 Jul 2026 20:25:57 +0000 (16:25 -0400)] 
lib/util/dbuff: fix fr_dbuff_reset_talloc clobbering old base before fr_dbuff_update()

6 days agolib/util/dbuff: fix fr_dbuff_advance_extend referencing nonexistent _fr_dbuff_advance
Alexander Bainbridge-Sedivy [Mon, 27 Jul 2026 20:39:06 +0000 (16:39 -0400)] 
lib/util/dbuff: fix fr_dbuff_advance_extend referencing nonexistent _fr_dbuff_advance

6 days agoupdate inner-tunnel for notes on `eap` vs `eap_inner`
Alan T. DeKok [Mon, 3 Aug 2026 14:06:52 +0000 (10:06 -0400)] 
update inner-tunnel for notes on `eap` vs `eap_inner`

6 days agoword smith inner EAP
Alan T. DeKok [Mon, 3 Aug 2026 14:02:00 +0000 (10:02 -0400)] 
word smith inner EAP

also add PSK and PWD to it

6 days agotweak EAP comments and documentation
Alan T. DeKok [Mon, 3 Aug 2026 13:56:50 +0000 (09:56 -0400)] 
tweak EAP comments and documentation

6 days agobypass walk up the stack in NDEBUG mode
Alan T. DeKok [Mon, 3 Aug 2026 13:37:27 +0000 (09:37 -0400)] 
bypass walk up the stack in NDEBUG mode

when finding a frame by op flag.

6 days agoadd stack short-cuts for break, continue, return, and load-balance
Alan T. DeKok [Mon, 3 Aug 2026 00:00:52 +0000 (20:00 -0400)] 
add stack short-cuts for break, continue, return, and load-balance

so that we don't have to walk back up the stack to find them.
Instead, we can just examine the current stack frame to see where
those frames are.

For now. we just set the return frames and assert that their values
are correct.  We do not (as yet) skip the loop over the frames,
to just find the correct frame.

6 days agoregenerate antora files after reformatting the input raddb files
Alan T. DeKok [Thu, 30 Jul 2026 18:10:24 +0000 (14:10 -0400)] 
regenerate antora files after reformatting the input raddb files

6 days agofix indentation for raddb
Alan T. DeKok [Thu, 30 Jul 2026 15:27:40 +0000 (11:27 -0400)] 
fix indentation for raddb

* audit example configurations in comments, so that they are
  marked as in-line code

* re-indent commented out modules

* re-indent and fix hashes for multi-line commented-out code

6 days agoadd rlm_eap_psk
Alan T. DeKok [Thu, 30 Jul 2026 15:29:31 +0000 (11:29 -0400)] 
add rlm_eap_psk

9 days agoRemove un-used mysql option
Nick Porter [Fri, 31 Jul 2026 16:29:17 +0000 (17:29 +0100)] 
Remove un-used mysql option

This option only applies to synchronous connections and defaults to
false anyway, which is the value which was being set.

9 days agoAdd support for Mariadb Connector/C socket notification callbacks
Nick Porter [Fri, 31 Jul 2026 15:56:30 +0000 (16:56 +0100)] 
Add support for Mariadb Connector/C socket notification callbacks

In anticipation of them being added to the library.

9 days agoHandle MariaDB Connector/C socket closing behaviour
Nick Porter [Fri, 31 Jul 2026 15:55:03 +0000 (16:55 +0100)] 
Handle MariaDB Connector/C socket closing behaviour

During connection establishement, MariaDB Connector/C can close the fd
and potentially open a new one without any callbacks to notify of that
happening.

If we have events registered for the fd that has now been closed,
potentially events fire for that fd when it has been re-used for a
different purpose.

Using dup() to create our own fd for the socket, we remain in control of
the fd which has registered events.

9 days agoReplace deprecated mysql_options with mysql_optionsv
Nick Porter [Fri, 31 Jul 2026 13:59:56 +0000 (14:59 +0100)] 
Replace deprecated mysql_options with mysql_optionsv

9 days agoFreeRADIUS is only built against mariadb-connector, not libmysql
Nick Porter [Fri, 31 Jul 2026 13:50:43 +0000 (14:50 +0100)] 
FreeRADIUS is only built against mariadb-connector, not libmysql

Due to the difference in async behaviour.

10 days agoprint out the correct location of the log
Alan T. DeKok [Thu, 30 Jul 2026 15:50:09 +0000 (11:50 -0400)] 
print out the correct location of the log

10 days agoadd Password.PSK, and glue into password function
Alan T. DeKok [Thu, 30 Jul 2026 15:21:08 +0000 (11:21 -0400)] 
add Password.PSK, and glue into password function

10 days agolib/util/cbor: emit tag before array header when encoding IPv6 addr with scope_id
Alexander Bainbridge-Sedivy [Mon, 27 Jul 2026 19:45:47 +0000 (15:45 -0400)] 
lib/util/cbor: emit tag before array header when encoding IPv6 addr with scope_id

10 days agolib/util/cap: fr_cap_disable clears the whole set instead of the single requested...
Alexander Bainbridge-Sedivy [Mon, 27 Jul 2026 19:20:27 +0000 (15:20 -0400)] 
lib/util/cap: fr_cap_disable clears the whole set instead of the single requested capability

10 days agolib/util/calc.h: fix wrong nonnull() arg on fr_value_calc_unary_op (protects ctx...
Alexander Bainbridge-Sedivy [Mon, 27 Jul 2026 18:30:16 +0000 (14:30 -0400)] 
lib/util/calc.h: fix wrong nonnull() arg on fr_value_calc_unary_op (protects ctx, not dst/src)

10 days agolib/util/base32: fix copy-pasted 'Base 64 encode' doc header on fr_base32_encode_nstd
Alexander Bainbridge-Sedivy [Mon, 27 Jul 2026 14:45:59 +0000 (10:45 -0400)] 
lib/util/base32: fix copy-pasted 'Base 64 encode' doc header on fr_base32_encode_nstd

10 days agolib/util/base.h: remove duplicate util/table.h include
Alexander Bainbridge-Sedivy [Mon, 27 Jul 2026 14:03:55 +0000 (10:03 -0400)] 
lib/util/base.h: remove duplicate util/table.h include

10 days agolib/util/atexit.h: fix __Thread_local typo so non-threaded build strips _Thread_local...
Alexander Bainbridge-Sedivy [Fri, 24 Jul 2026 20:25:13 +0000 (16:25 -0400)] 
lib/util/atexit.h: fix __Thread_local typo so non-threaded build strips _Thread_local qualifier

10 days agoatexit.c: guard NULL fr_atexit_global in fr_atexit_global_disarm
Alexander Bainbridge-Sedivy [Fri, 24 Jul 2026 20:10:28 +0000 (16:10 -0400)] 
atexit.c: guard NULL fr_atexit_global in fr_atexit_global_disarm

10 days agolib/unlang/xlat_redundant: free leaked mrx_tree on two error paths in xlat_register_r...
Alexander Bainbridge-Sedivy [Fri, 24 Jul 2026 19:54:58 +0000 (15:54 -0400)] 
lib/unlang/xlat_redundant: free leaked mrx_tree on two error paths in xlat_register_redundant

10 days agolib/unlang/xlat_purify: avoid use-after-free of freed group node when hoisting an...
Alexander Bainbridge-Sedivy [Fri, 24 Jul 2026 19:09:39 +0000 (15:09 -0400)] 
lib/unlang/xlat_purify: avoid use-after-free of freed group node when hoisting an empty group

10 days agolib/unlang/xlat_func: fix typo in xlat_mctx_set doc comment (about -> bound)
Alexander Bainbridge-Sedivy [Fri, 24 Jul 2026 17:47:42 +0000 (13:47 -0400)] 
lib/unlang/xlat_func: fix typo in xlat_mctx_set doc comment (about -> bound)

10 days agolib/unlang/xlat_expr: parent xlat_logical_and result box from rctx->ctx (latent UAF)
Alexander Bainbridge-Sedivy [Fri, 24 Jul 2026 16:01:34 +0000 (12:01 -0400)] 
lib/unlang/xlat_expr: parent xlat_logical_and result box from rctx->ctx (latent UAF)

10 days agolib/unlang/xlat_alloc: check tmpl_copy() failure in _xlat_copy_internal (NULL deref)
Alexander Bainbridge-Sedivy [Wed, 22 Jul 2026 19:41:06 +0000 (15:41 -0400)] 
lib/unlang/xlat_alloc: check tmpl_copy() failure in _xlat_copy_internal (NULL deref)

10 days agolib/unlang/xlat: drop stale UNUSED on unlang_xlat() p_result parameter (it is used)
Alexander Bainbridge-Sedivy [Wed, 22 Jul 2026 18:53:46 +0000 (14:53 -0400)] 
lib/unlang/xlat: drop stale UNUSED on unlang_xlat() p_result parameter (it is used)

10 days agounlang/try: default 'catch' redundancy check never fires (loop starts at RLM_MODULE_N...
Alexander Bainbridge-Sedivy [Wed, 22 Jul 2026 18:36:06 +0000 (14:36 -0400)] 
unlang/try: default 'catch' redundancy check never fires (loop starts at RLM_MODULE_NOT_SET)

10 days agolib/unlang/subrequest: remove dead unlang_subrequest_detach_child declaration
Alexander Bainbridge-Sedivy [Wed, 22 Jul 2026 15:46:20 +0000 (11:46 -0400)] 
lib/unlang/subrequest: remove dead unlang_subrequest_detach_child declaration

10 days agolib/unlang/subrequest: fix OOB read from signed-char index into fr_dict_attr_allowed_...
Alexander Bainbridge-Sedivy [Wed, 22 Jul 2026 15:38:22 +0000 (11:38 -0400)] 
lib/unlang/subrequest: fix OOB read from signed-char index into fr_dict_attr_allowed_chars

10 days agolib/unlang/map: free leaked unlang_group_t on two error paths in unlang_compile_map()
Alexander Bainbridge-Sedivy [Wed, 22 Jul 2026 15:03:50 +0000 (11:03 -0400)] 
lib/unlang/map: free leaked unlang_group_t on two error paths in unlang_compile_map()

10 days agounlang/limit: fix NULL deref in signal handler when cancelling a dynamic limit argument
Alexander Bainbridge-Sedivy [Wed, 22 Jul 2026 14:34:20 +0000 (10:34 -0400)] 
unlang/limit: fix NULL deref in signal handler when cancelling a dynamic limit argument

10 days agolib/unlang/io: fix misleading doc claiming NULL namespace is supported in unlang_io_s...
Alexander Bainbridge-Sedivy [Mon, 20 Jul 2026 20:50:07 +0000 (16:50 -0400)] 
lib/unlang/io: fix misleading doc claiming NULL namespace is supported in unlang_io_subrequest_alloc

10 days agounlang/interpret_synchronous: remove dead num_events == -1 branches in DEBUG4
Alexander Bainbridge-Sedivy [Mon, 20 Jul 2026 20:33:11 +0000 (16:33 -0400)] 
unlang/interpret_synchronous: remove dead num_events == -1 branches in DEBUG4

10 days agounlang/interpret.h: fix copy-pasted doc comment on unlang_request_scheduled_t typedef
Alexander Bainbridge-Sedivy [Mon, 20 Jul 2026 20:04:31 +0000 (16:04 -0400)] 
unlang/interpret.h: fix copy-pasted doc comment on unlang_request_scheduled_t typedef

10 days agounlang/interpret: fix stale comment on unlang_cancel_xlat immediate-cancel path
Alexander Bainbridge-Sedivy [Mon, 20 Jul 2026 19:55:33 +0000 (15:55 -0400)] 
unlang/interpret: fix stale comment on unlang_cancel_xlat immediate-cancel path

10 days agounlang/function: FUNC()/REPEAT() macros ignore their argument and use captured 'state'
Alexander Bainbridge-Sedivy [Mon, 20 Jul 2026 19:47:04 +0000 (15:47 -0400)] 
unlang/function: FUNC()/REPEAT() macros ignore their argument and use captured 'state'

10 days agounlang/finally: fix inverted min_time comparison that cancels finally sections early
Alexander Bainbridge-Sedivy [Mon, 20 Jul 2026 19:00:26 +0000 (15:00 -0400)] 
unlang/finally: fix inverted min_time comparison that cancels finally sections early

10 days agolib/unlang/edit: clear RHS tmpl dcursor on temporary_pair_list error paths (leak)
Alexander Bainbridge-Sedivy [Mon, 20 Jul 2026 18:43:00 +0000 (14:43 -0400)] 
lib/unlang/edit: clear RHS tmpl dcursor on temporary_pair_list error paths (leak)