]>
git.ipfire.org Git - thirdparty/freeradius-server.git/log
Youfu Zhang [Thu, 21 Oct 2021 14:13:32 +0000 (22:13 +0800)]
tls/verify: implement allow_not_yet_valid_crl (#4181)
James Jones [Thu, 21 Oct 2021 14:07:49 +0000 (09:07 -0500)]
Add fr_heap_verify() and FR_HEAP_VERIFY() (#4274)
FR_HEAP_VERIFY() invocations are added to fr_heap_test() to confirm
that the verify function works.
Nick Porter [Thu, 21 Oct 2021 14:07:20 +0000 (15:07 +0100)]
v4: Add additional LDAP tests (#4276)
* Add extra entry to test LDAP directory for escaped char matching
* Add tests of %{ldap: } xlat
* Tidy ldap map test - and allow for ldap search results not being fixed order
* Add extra ldap xlat tests
* ldap_debug option is only parsed in the global section
* Add meaningful libldap debugging to tests
* Add secondary LDAP server to CI tests
Allows for referral tests and xlats calling a different server to the
module configured one.
* Add subordinate dc to base.ldif for referral test
* Add tests for referral and requesting an alternate LDAP server
* Add extra LDAP entries for multiple hop referrals
* Test multiple hop LDAP referrals
* Tidy ldap auth test
* Tidy LDAP accounting test
* Tidy LDAP group tests
* "by anonymous auth" needs to be before any "to *" otherwise auth doesn't work
* Add LDAP bind authentication to tests
* LDAP map now returns correct codes
* Add SSL connection to test LDAP server
* Add test SSL LDAP server port to CI config
* Add a second ldap test module instance using SSL
* Add third instance of ldap module using StartTLS
* Add test using SSL connection to LDAP server
* Add test using StartTLS connection to LDAP server
Alan T. DeKok [Thu, 21 Oct 2021 01:47:38 +0000 (21:47 -0400)]
updates based on better / saner fr_dns_packet_ok()
Alan T. DeKok [Thu, 21 Oct 2021 01:12:53 +0000 (21:12 -0400)]
remove unused code
Alan T. DeKok [Thu, 21 Oct 2021 00:42:20 +0000 (20:42 -0400)]
update to handle more than 3 layers, and correctly edit the files
with many more comments and better names
Alan T. DeKok [Wed, 20 Oct 2021 23:58:16 +0000 (19:58 -0400)]
minimum includes
Alan T. DeKok [Wed, 20 Oct 2021 20:46:15 +0000 (16:46 -0400)]
typo
Alan T. DeKok [Wed, 20 Oct 2021 19:22:28 +0000 (15:22 -0400)]
more cleanups and less work
Alan T. DeKok [Wed, 20 Oct 2021 15:06:58 +0000 (11:06 -0400)]
remove more unneeded headers
and make sure that the necessary headers are included
Alan T. DeKok [Wed, 20 Oct 2021 14:56:27 +0000 (10:56 -0400)]
remove unnecessary includes
Alan T. DeKok [Wed, 20 Oct 2021 14:22:10 +0000 (10:22 -0400)]
clean up includes.
tcp.h is used only in src/protocols/radius, and so shouldn't be in
src/lib/server, or in src/listen
many things in src/protocols included server/base.h, which makes
no sense, as nothing in them uses any of the server functions
many things included util/base.h, when they only used a tiny
subset of the headers.
Removing dozens of includes from each C file should speed up
compilation.
Alan T. DeKok [Wed, 20 Oct 2021 14:21:25 +0000 (10:21 -0400)]
include necessary header
Alan T. DeKok [Wed, 20 Oct 2021 14:15:18 +0000 (10:15 -0400)]
let's include all of the headers
Alan T. DeKok [Wed, 20 Oct 2021 13:46:41 +0000 (09:46 -0400)]
update, and don't process files repeatedly.
Alan T. DeKok [Wed, 20 Oct 2021 13:23:08 +0000 (09:23 -0400)]
move script makefiles to the scripts/ directory
Arran Cudbard-Bell [Tue, 19 Oct 2021 20:48:25 +0000 (15:48 -0500)]
Add option to exclude tag in decrypted pseudonym
Arran Cudbard-Bell [Sat, 16 Oct 2021 03:24:38 +0000 (22:24 -0500)]
Add null to the type table so we can print it correctly
Don't add cast attribute for "null"
Jorge Pereira [Tue, 19 Oct 2021 14:41:19 +0000 (11:41 -0300)]
Some cosmetics around the scripts/util/pcap2decode-proto.py (#4260)
Alan T. DeKok [Mon, 18 Oct 2021 19:16:06 +0000 (15:16 -0400)]
typo
Alan T. DeKok [Mon, 18 Oct 2021 18:33:17 +0000 (14:33 -0400)]
Manual merge of #4260
Packets from https://github.com/the-tcpdump-group/tcpdump/tree/master/tests/dns-badcookie.pcap
Alan T. DeKok [Mon, 18 Oct 2021 18:29:27 +0000 (14:29 -0400)]
ensure it has_length
Alan T. DeKok [Mon, 18 Oct 2021 18:27:52 +0000 (14:27 -0400)]
more checks on packet sanity
Alan T. DeKok [Sat, 16 Oct 2021 20:49:26 +0000 (16:49 -0400)]
more errors and more pointer validation
Alan T. DeKok [Sat, 16 Oct 2021 20:32:39 +0000 (16:32 -0400)]
add finer-grained errors
Nick Porter [Mon, 18 Oct 2021 13:10:09 +0000 (14:10 +0100)]
v4: Fixes for tls and sasl LDAP connections (#4275)
* Free old result before the new one is fetched, not after
* Zero timeout actually causes async connections to hang
* Handle fd discovery for sasl and start_tls the same as simple bind
* Interactive SASL callback needs to set lengths on replies
* Better SASL debug message - if we already have a result then we're continuing
* bind_ctx is parented off the connection - so signalling that the connection...
... is in error will do the free
* Add request to fr_ldap_referral_t
So we know what request to resume when the reply comes
* Use the correct freeing routine for berval
Alan T. DeKok [Fri, 15 Oct 2021 18:58:35 +0000 (14:58 -0400)]
fix errors
Alan T. DeKok [Fri, 15 Oct 2021 18:36:25 +0000 (14:36 -0400)]
better sanity checker for DNS packets
Alan T. DeKok [Fri, 15 Oct 2021 17:32:50 +0000 (13:32 -0400)]
make fr_dns_ok() return a reason why the packet is bad
and push that through the rest of the code, and the test cases
Terry Burton [Fri, 15 Oct 2021 17:14:44 +0000 (18:14 +0100)]
fuzzer-fetch-artifacts: Align with artifact name and contents; better usage (#4271)
Arran Cudbard-Bell [Fri, 15 Oct 2021 15:02:01 +0000 (10:02 -0500)]
Use the same SBUFF init macro as dbuffs
Add more macro options
Arran Cudbard-Bell [Fri, 15 Oct 2021 14:24:58 +0000 (09:24 -0500)]
Use the same macro names as dbuffs
Matthew Newton [Fri, 15 Oct 2021 11:32:07 +0000 (12:32 +0100)]
CI: add Rocky 8 in prep for CentOS 8 EOL
Alan T. DeKok [Fri, 15 Oct 2021 12:10:49 +0000 (08:10 -0400)]
YAML shell scripts are stupid. GNU make is evil, but functional
Alan T. DeKok [Fri, 15 Oct 2021 12:06:18 +0000 (08:06 -0400)]
nope.
whoever decided to use YAML for shell scripts is an idiot.
Alan T. DeKok [Fri, 15 Oct 2021 12:04:39 +0000 (08:04 -0400)]
one more try to make the magic github workers happy?
Alan T. DeKok [Fri, 15 Oct 2021 11:52:56 +0000 (07:52 -0400)]
no need to dump out the entire fuzzing to the main actions log
Alan T. DeKok [Fri, 15 Oct 2021 11:55:23 +0000 (07:55 -0400)]
Revert "no need to dump out the entire fuzzing to the main actions log"
This reverts commit
7b5697af0e1fa23898307c7514ce230c3964b561 .
Alan T. DeKok [Fri, 15 Oct 2021 11:52:56 +0000 (07:52 -0400)]
no need to dump out the entire fuzzing to the main actions log
Arran Cudbard-Bell [Thu, 14 Oct 2021 18:47:45 +0000 (13:47 -0500)]
ldap: Don't leave the ldap handle's fd in the event loop when we're closing the connection
Arran Cudbard-Bell [Thu, 14 Oct 2021 18:35:15 +0000 (13:35 -0500)]
ldap: Process all the attributes in the result, not just the first one
Arran Cudbard-Bell [Thu, 14 Oct 2021 18:09:55 +0000 (13:09 -0500)]
ldap: Signalling the treq is complete is the _last_ thing we should do
Arran Cudbard-Bell [Thu, 14 Oct 2021 18:02:50 +0000 (13:02 -0500)]
ldap: Retry ldap_result if it's the first loop through the demuxer
...the demuxer was called for a reason. It's unlikely we'd get a read notification on the socket and there _really_ be no result.
Arran Cudbard-Bell [Thu, 14 Oct 2021 18:02:07 +0000 (13:02 -0500)]
ldap: Slightly easier to parse message
Arran Cudbard-Bell [Thu, 14 Oct 2021 18:01:22 +0000 (13:01 -0500)]
ldap: If the connection is bad, reconnect it
Arran Cudbard-Bell [Thu, 14 Oct 2021 17:43:26 +0000 (12:43 -0500)]
ldap: The on close watcher should be oneshot
otherwise we accrue onclose watchers pointint to fr_ldap_connection_t that have been freed
Arran Cudbard-Bell [Thu, 14 Oct 2021 17:42:47 +0000 (12:42 -0500)]
ldap: It's fine if the request goes into the backlog
Arran Cudbard-Bell [Thu, 14 Oct 2021 15:59:49 +0000 (10:59 -0500)]
ldap: Remove ttrunk and request from fr_ldap_query_t as they're no longer needed
Arran Cudbard-Bell [Thu, 14 Oct 2021 19:48:19 +0000 (14:48 -0500)]
ldap: Move synchronous evaluation into fr_ldap_trunk_search and fr_ldap_trunk_modify
Arran Cudbard-Bell [Thu, 14 Oct 2021 15:57:30 +0000 (10:57 -0500)]
ldap: Use query->treq->request in request_mux and request_demux
Arran Cudbard-Bell [Thu, 14 Oct 2021 15:56:40 +0000 (10:56 -0500)]
ldap: Pass parameters to referal code explicitly
Arran Cudbard-Bell [Thu, 14 Oct 2021 15:55:56 +0000 (10:55 -0500)]
ldap: Rename t to ttrunk in ldap_trunk_request_demux (to be consistent with everywhere else)
Arran Cudbard-Bell [Thu, 14 Oct 2021 15:54:26 +0000 (10:54 -0500)]
ldap: Only do URL parsing when we're allocing ldap queries
Arran Cudbard-Bell [Thu, 14 Oct 2021 15:52:52 +0000 (10:52 -0500)]
ldap: Make ldap_query_timeout work for ldap queries without requests
Arran Cudbard-Bell [Thu, 14 Oct 2021 15:48:38 +0000 (10:48 -0500)]
ldap: Expand arguments passed to custom result parser
Rework trunk type discovery to be a bit more efficient
Arran Cudbard-Bell [Thu, 14 Oct 2021 15:46:14 +0000 (10:46 -0500)]
ldap: Add thread local dummy handles to pass to functions which don't really need a handle
Arran Cudbard-Bell [Thu, 14 Oct 2021 15:44:27 +0000 (10:44 -0500)]
ldap: Remove redundant typedef for fr_ldap_query_t
Arran Cudbard-Bell [Thu, 14 Oct 2021 15:43:56 +0000 (10:43 -0500)]
ldap: Make fr_ldap_parse_url_extensions a little more generic and friendly
Arran Cudbard-Bell [Wed, 13 Oct 2021 20:50:22 +0000 (15:50 -0500)]
ldap: Add specialised query alloc functions
Arran Cudbard-Bell [Wed, 13 Oct 2021 20:42:27 +0000 (15:42 -0500)]
ldap: Validate the preq
Arran Cudbard-Bell [Wed, 13 Oct 2021 19:54:36 +0000 (14:54 -0500)]
ldap: Add default hombrew paths for libldap
Alan T. DeKok [Thu, 14 Oct 2021 20:18:49 +0000 (16:18 -0400)]
add fr_time_scale() and use it when parsing times.
so that we can clamp the times at min/max values, if the user
gives us something which is out of bounds.
we still need to fix value_box_from_network for DATE, as those
values are unsigned. And also fix the various casting functions
to clamp the relevant values.
Alan T. DeKok [Thu, 14 Oct 2021 20:06:54 +0000 (16:06 -0400)]
ensure that input buffer is zero-terminated
Alan T. DeKok [Thu, 14 Oct 2021 18:15:26 +0000 (14:15 -0400)]
most instance things use "type" instead of "name"
so change this for consistency
James Jones [Thu, 14 Oct 2021 14:14:30 +0000 (09:14 -0500)]
Rewrite lst_validate() as fr_lst_verify(), with FR_LST_VERIFY() macro (#4263)
Using the foo_verify() parameter convention had the nice side effect
of bringing useful const qualifications to some function parameters
in some functions.
Alan T. DeKok [Thu, 14 Oct 2021 14:07:04 +0000 (10:07 -0400)]
add fuzzer for string parsers
we know things will likely crash because some string parsers
don't respect "end". But it already caught some issues.
Alan T. DeKok [Thu, 14 Oct 2021 14:02:59 +0000 (10:02 -0400)]
more checks
Alan T. DeKok [Thu, 14 Oct 2021 13:42:33 +0000 (09:42 -0400)]
check for bounds before accessing memory
Alan T. DeKok [Thu, 14 Oct 2021 13:23:57 +0000 (09:23 -0400)]
initialize only as much as necessary
Nick Porter [Wed, 13 Oct 2021 19:35:26 +0000 (20:35 +0100)]
v4: Move rlm_ldap to use trunk connections in place of connection pool (#4265)
* Amend fr_ldap_map_do to take LDAP handle instead of fr_ldap_connection_t
* Amend rlm_ldap_find_user() to use trunk connection
* Amend rlm_ldap_check_access() to take LDAP handle
* Amend rlm_ldap_check_reply() to take trunk connection
* Amend rlm_ldap_group_name2dn() to take fr_ldap_thread_trunk_t
* Amend rlm_ldap_group_dn2name() to take fr_ldap_thread_trunk_t
* Amend rlm_ldap_cacheable_userobj() to take fr_ldap_thread_trunk_t
* Amend rlm_ldap_cacheable_groupobj() to take fr_ldap_thread_trunk_t
* Amend rlm_ldap_check_groupobj_dynamic() to take fr_ldap_thread_trunk_t
* Amend rlm_ldap_check_userobj_dynamic() to take fr_ldap_thread_trunk_t
* Amend LDAP mod_map_proc() to use fr_ldap_thread_trunk_t connections
* Amend rlm_ldap_groupcmp to use fr_ldap_thread_trunk_t connections
* Amend mod_authenticate to use fr_ldap_thread_trunk_t connections
* Amend rlm_ldap_map_profile to take fr_ldap_thread_trunk_t
* Amend user_modify to use fr_ldap_thread_trunk_t connections
* Amend mod_authorize to use fr_ldap_thread_trunk_t connections
* Amend mod_authenticate() to use async bind in place of fr_ldap_bind()
* Amend mod_authorize to use async LDAP bind in place of fr_ldap_bind()
* rlm_ldap no longer uses a connection pool
* Parse trunk config for LDAP trunks
Nick Porter [Wed, 13 Oct 2021 19:24:41 +0000 (20:24 +0100)]
v4: Protect LDAP connections from being freed when there are outstanding queries... (#4267)
* Use correct DN string in debug message
* Use query type to identify LDAP searches
* Protect fr_ldap_connection_t from being freed if there are pending queries
* Add watcher checking for outstanding queries when an LDAP connection closes
* Alter _ldap_query_free() to free the associated connection if it is closed ...
... and has no other queries associated with it
* Queries are removed from the pending tree by the query destructor
* Improve handling of un-expected results retrieved from libldap
* Don't free LDAP results just because an LDAP error was returned ...
... if the caller wants the results, it may want to query them
regardless of success or failure.
* Add debug message for auth bind reject
* Free the bind_auth_ctx when we've finished with it
* Improved version of _ldap_bind_auth_io_read()
- handle fr_ldap_result() returning no result
- handle LDAP_PROC_REJECT
- use a normal while loop
Alan T. DeKok [Wed, 13 Oct 2021 15:39:10 +0000 (11:39 -0400)]
don't use talloc if we're not using talloc
Alan T. DeKok [Wed, 13 Oct 2021 14:53:24 +0000 (10:53 -0400)]
just make them thread-local
if the atexit stuff crashes, then we don't use it
Alan T. DeKok [Wed, 13 Oct 2021 13:23:54 +0000 (09:23 -0400)]
initialize as needed, not globally
Alan T. DeKok [Wed, 13 Oct 2021 13:00:17 +0000 (09:00 -0400)]
minor rearrangement for speed
comparing pointers is faster than a function call, so let's
do that first
Alan T. DeKok [Wed, 13 Oct 2021 12:39:22 +0000 (08:39 -0400)]
remove unused function
Arran Cudbard-Bell [Wed, 13 Oct 2021 14:06:38 +0000 (09:06 -0500)]
Gcc doesn't support handle markup
Arran Cudbard-Bell [Wed, 13 Oct 2021 13:19:54 +0000 (08:19 -0500)]
Mark up functions/apis with explicit acquire/release semantics
Matthew Newton [Wed, 13 Oct 2021 12:59:37 +0000 (13:59 +0100)]
docker: debian sid needs NR extras repo for up-to-date libkqueue
Alan T. DeKok [Wed, 13 Oct 2021 12:33:42 +0000 (08:33 -0400)]
move dns_labels to thread-local variable
because we don't yield when decoding the DNS packet.
Arran Cudbard-Bell [Wed, 13 Oct 2021 01:37:59 +0000 (20:37 -0500)]
Dedup const code
Alan T. DeKok [Wed, 13 Oct 2021 00:50:35 +0000 (20:50 -0400)]
when we read a fake packet, mark the pairs as tainted
which should help the rlm_rest test cases
Matthew Newton [Tue, 12 Oct 2021 19:39:23 +0000 (20:39 +0100)]
json: skip raw attributes
They tend to have binary stuff that gets incorrectly encoded and
breaks the json output
Alan T. DeKok [Tue, 12 Oct 2021 20:12:43 +0000 (16:12 -0400)]
push markup buffer to proto_dns, too
Alan T. DeKok [Tue, 12 Oct 2021 19:52:27 +0000 (15:52 -0400)]
add marker array for tracking where labels can point to
Alan T. DeKok [Tue, 12 Oct 2021 17:57:11 +0000 (13:57 -0400)]
pass require_ma to fr_radius_verify()
Alan T. DeKok [Tue, 12 Oct 2021 17:54:16 +0000 (13:54 -0400)]
add require_ma flag to fr_radius_verify()
Alan T. DeKok [Tue, 12 Oct 2021 14:57:50 +0000 (10:57 -0400)]
things from config files are not tainted by default
exec_legacy already calls fr_pair_list_tainted(), as the output
of exec is rather less trusted than the config files.
Update the internal tests to remove the tainted flag.
Alan T. DeKok [Tue, 12 Oct 2021 14:26:36 +0000 (10:26 -0400)]
don't convert octets from hex, and don't unescape strings
Alan T. DeKok [Tue, 12 Oct 2021 14:02:51 +0000 (10:02 -0400)]
nope
Alan T. DeKok [Tue, 12 Oct 2021 12:51:54 +0000 (08:51 -0400)]
let's add one more check
Arran Cudbard-Bell [Tue, 12 Oct 2021 03:48:42 +0000 (22:48 -0500)]
Return the correct type on error
Arran Cudbard-Bell [Tue, 12 Oct 2021 02:24:03 +0000 (21:24 -0500)]
Add fr_pair_list_dcursor_init and fr_pair_list_dcursor_talloc_init
Use pair list specific iterators for initialising pair dcursors
Arran Cudbard-Bell [Mon, 11 Oct 2021 23:15:13 +0000 (18:15 -0500)]
Remove one instance of dcursors
Arran Cudbard-Bell [Mon, 11 Oct 2021 21:39:10 +0000 (16:39 -0500)]
Remove commented out code
Arran Cudbard-Bell [Mon, 11 Oct 2021 21:24:14 +0000 (16:24 -0500)]
Implement dcursor insert and remove callbacks
Matthew Newton [Mon, 11 Oct 2021 19:30:45 +0000 (20:30 +0100)]
CI: temporarily remove rawhide due to docker clone3 bug
as per https://github.com/actions/virtual-environments/issues/3812
Arran Cudbard-Bell [Mon, 11 Oct 2021 20:40:51 +0000 (15:40 -0500)]
Use up to date function
Arran Cudbard-Bell [Mon, 11 Oct 2021 20:26:37 +0000 (15:26 -0500)]
Possibly fix overflow?
Arran Cudbard-Bell [Mon, 11 Oct 2021 20:19:42 +0000 (15:19 -0500)]
Enforce is_const in the dcursor API
Abort or return if a modification attempt is made on a const list