]> git.ipfire.org Git - thirdparty/freeradius-server.git/log
thirdparty/freeradius-server.git
2 weeks agoScheduled fuzzing: Update src/tests/fuzzer-corpus/dhcpv6.tar
github-actions[bot] [Mon, 15 Dec 2025 04:43:28 +0000 (04:43 +0000)] 
Scheduled fuzzing: Update src/tests/fuzzer-corpus/dhcpv6.tar

2 weeks agoScheduled fuzzing: Update src/tests/fuzzer-corpus/dns.tar
github-actions[bot] [Mon, 15 Dec 2025 04:42:58 +0000 (04:42 +0000)] 
Scheduled fuzzing: Update src/tests/fuzzer-corpus/dns.tar

2 weeks agoScheduled fuzzing: Update src/tests/fuzzer-corpus/radius.tar
github-actions[bot] [Mon, 15 Dec 2025 04:42:49 +0000 (04:42 +0000)] 
Scheduled fuzzing: Update src/tests/fuzzer-corpus/radius.tar

2 weeks agoScheduled fuzzing: Update src/tests/fuzzer-corpus/bfd.tar
github-actions[bot] [Mon, 15 Dec 2025 04:42:07 +0000 (04:42 +0000)] 
Scheduled fuzzing: Update src/tests/fuzzer-corpus/bfd.tar

2 weeks agoScheduled fuzzing: Update src/tests/fuzzer-corpus/dhcpv4.tar
github-actions[bot] [Mon, 15 Dec 2025 04:37:22 +0000 (04:37 +0000)] 
Scheduled fuzzing: Update src/tests/fuzzer-corpus/dhcpv4.tar

2 weeks agomake output look more like gdb
Alan T. DeKok [Sun, 14 Dec 2025 21:32:42 +0000 (16:32 -0500)] 
make output look more like gdb

2 weeks agohandle magic OOM values. CID #1676084
Alan T. DeKok [Sun, 14 Dec 2025 21:19:33 +0000 (16:19 -0500)] 
handle magic OOM values. CID #1676084

2 weeks agoget DSYM for local libs, too
Alan T. DeKok [Sun, 14 Dec 2025 16:31:36 +0000 (11:31 -0500)] 
get DSYM for local libs, too

2 weeks agoclean up OSX and DSYMUTIL rules so that they work
Alan T. DeKok [Sun, 14 Dec 2025 16:02:24 +0000 (11:02 -0500)] 
clean up OSX and DSYMUTIL rules so that they work

for now, we just define "DSYMTUL=touch" on platforms which don't
have it.  There isn't enough time right now to fight with GNU make
and inline "if" checks in evaluated rules

2 weeks agorun macro, not binary name
Alan T. DeKok [Sun, 14 Dec 2025 15:47:11 +0000 (10:47 -0500)] 
run macro, not binary name

2 weeks agofix typo
Alan T. DeKok [Sun, 14 Dec 2025 15:45:05 +0000 (10:45 -0500)] 
fix typo

2 weeks agoadd missing dependency
Alan T. DeKok [Sun, 14 Dec 2025 14:19:40 +0000 (09:19 -0500)] 
add missing dependency

so that the library builds

2 weeks agocreate the soft link which we need
Alan T. DeKok [Sun, 14 Dec 2025 14:17:12 +0000 (09:17 -0500)] 
create the soft link which we need

2 weeks ago"VERBOSE=1 make" does NOT mean "give us thousands of lines of garbage"
Alan T. DeKok [Sun, 14 Dec 2025 14:01:39 +0000 (09:01 -0500)] 
"VERBOSE=1 make" does NOT mean "give us thousands of lines of garbage"

We want to see the commands that "make" is running.  We do NOT want
to see thousands of lines of the same output from jlibtool about
its build flags.

2 weeks agothis should be static
Alan T. DeKok [Sun, 14 Dec 2025 13:51:01 +0000 (08:51 -0500)] 
this should be static

2 weeks agoRevert "unstall libunwind-dev for the fuzzers"
Alan T. DeKok [Sun, 14 Dec 2025 13:42:32 +0000 (08:42 -0500)] 
Revert "unstall libunwind-dev for the fuzzers"

This reverts commit c62e5faa586edc0e0d70ace6ea0a02ed469e3766.

this doesn't work.  We should be using libbacktrace instead.

2 weeks agodisable encoder tests again
Alan T. DeKok [Sun, 14 Dec 2025 13:14:23 +0000 (08:14 -0500)] 
disable encoder tests again

they're still showing random failures in CI.  It's difficult to
track down the issues when CI stubbornly refuses to show useful
stack traces, and we can't reproduce the issues locally.

2 weeks agoadd macro to verify list with ctx
Alan T. DeKok [Sun, 14 Dec 2025 13:06:12 +0000 (08:06 -0500)] 
add macro to verify list with ctx

2 weeks agoverify the destination pair, not just its children
Alan T. DeKok [Sun, 14 Dec 2025 13:11:29 +0000 (08:11 -0500)] 
verify the destination pair, not just its children

the change allows the children to be verified for their talloc
ctx, too

2 weeks agoremove old comment
Alan T. DeKok [Sun, 14 Dec 2025 13:02:39 +0000 (08:02 -0500)] 
remove old comment

2 weeks agoensure that the value-box type matches the DA type
Alan T. DeKok [Sun, 14 Dec 2025 12:31:59 +0000 (07:31 -0500)] 
ensure that the value-box type matches the DA type

2 weeks agoreturn negative on error
Alan T. DeKok [Sun, 14 Dec 2025 12:30:08 +0000 (07:30 -0500)] 
return negative on error

2 weeks agotreq may be NULL
Alan T. DeKok [Sat, 13 Dec 2025 21:13:14 +0000 (16:13 -0500)] 
treq may be NULL

if the retry timer hits before the worker thread decides that the
request is runnable again

2 weeks agoRevert "cancel retries on failure"
Alan T. DeKok [Sat, 13 Dec 2025 21:10:46 +0000 (16:10 -0500)] 
Revert "cancel retries on failure"

This reverts commit 07d2b3c44030462f4ff3d28522e95ed169061848.

Nope.  the frame->retry is only for the "retry" keyword.
module.c and xlat.c do their own retries, and allocate their own
timers.

2 weeks agodon't mangle type to octets if the DA is already unknown
Alan T. DeKok [Sat, 13 Dec 2025 20:56:53 +0000 (15:56 -0500)] 
don't mangle type to octets if the DA is already unknown

2 weeks ago"decode 0 extra bytes" is valid
Alan T. DeKok [Sat, 13 Dec 2025 20:56:14 +0000 (15:56 -0500)] 
"decode 0 extra bytes" is valid

e.g. integers which have value <24, or zero-length octets

2 weeks agodo more cleanups on error
Alan T. DeKok [Sat, 13 Dec 2025 20:55:40 +0000 (15:55 -0500)] 
do more cleanups on error

not hugely important, but useful

2 weeks agocancel retries on failure
Alan T. DeKok [Sat, 13 Dec 2025 19:48:38 +0000 (14:48 -0500)] 
cancel retries on failure

2 weeks agoadd API to cancel any pending retry
Alan T. DeKok [Sat, 13 Dec 2025 19:47:27 +0000 (14:47 -0500)] 
add API to cancel any pending retry

2 weeks agoinitialize variables
Alan T. DeKok [Sat, 13 Dec 2025 19:46:58 +0000 (14:46 -0500)] 
initialize variables

2 weeks agofree any retry handler if the frame is cancelled
Alan T. DeKok [Sat, 13 Dec 2025 19:27:49 +0000 (14:27 -0500)] 
free any retry handler if the frame is cancelled

2 weeks agoMissing brackets around assignment
Arran Cudbard-Bell [Sat, 13 Dec 2025 18:52:49 +0000 (18:52 +0000)] 
Missing brackets around assignment

If the submodule failed to load, we'd SEGV

2 weeks agolimit decode depth, as is done with the other protocols
Alan T. DeKok [Sat, 13 Dec 2025 13:26:27 +0000 (08:26 -0500)] 
limit decode depth, as is done with the other protocols

2 weeks ago"encode no data" is allowed
Alan T. DeKok [Sat, 13 Dec 2025 12:37:18 +0000 (07:37 -0500)] 
"encode no data" is allowed

2 weeks agodon't complain about "-sql" when the module isn't defined
Alan T. DeKok [Fri, 12 Dec 2025 20:58:57 +0000 (15:58 -0500)] 
don't complain about "-sql" when the module isn't defined

this cleans up the debug output and makes it easier to read.

2 weeks agodocs-v4: REorg the tutorials sections and add landing pages for each subsection....
nolade [Tue, 9 Dec 2025 23:48:02 +0000 (18:48 -0500)] 
docs-v4: REorg the tutorials sections and add landing pages for each subsection. HIVE 4114

2 weeks agoverify the list before returning it to the caller
Alan T. DeKok [Fri, 12 Dec 2025 18:52:01 +0000 (13:52 -0500)] 
verify the list before returning it to the caller

2 weeks agoRevert "disable encoder until we can track down a fuzzer issue"
Alan T. DeKok [Fri, 12 Dec 2025 17:40:35 +0000 (12:40 -0500)] 
Revert "disable encoder until we can track down a fuzzer issue"

This reverts commit fc7c2a07bc6910b4aba4b556181100bbcd00e15e.

2 weeks agounstall libunwind-dev for the fuzzers
Alan T. DeKok [Fri, 12 Dec 2025 16:59:26 +0000 (11:59 -0500)] 
unstall libunwind-dev for the fuzzers

2 weeks agoonly update LDFLAGS if the configure checks pass
Alan T. DeKok [Fri, 12 Dec 2025 16:33:49 +0000 (11:33 -0500)] 
only update LDFLAGS if the configure checks pass

2 weeks agoremove unused file
Alan T. DeKok [Fri, 12 Dec 2025 14:53:31 +0000 (09:53 -0500)] 
remove unused file

2 weeks agodisable encoder until we can track down a fuzzer issue
Alan T. DeKok [Fri, 12 Dec 2025 12:42:41 +0000 (07:42 -0500)] 
disable encoder until we can track down a fuzzer issue

it's preventing the pair_legacy changes from being merged

2 weeks agoRewrite fr_pair_list_afrom_substr()
Alan T. DeKok [Thu, 11 Dec 2025 01:41:07 +0000 (20:41 -0500)] 
Rewrite fr_pair_list_afrom_substr()

and update tests to match.

It now properly handles aliases, groups, etc.  The parsing has
been significantly re-worked.  All of the old-style strings should
still be allowed, except for ones which had never made sense.

And since aliases, groups, etc. are now handled properly, the
fr_pair_t parenting is also correct.  So we can start enabling the
checks on parenting.

Which should help us remove the last vestiges of "flat" attributes

2 weeks agoScheduled fuzzing: Update src/tests/fuzzer-corpus/util.tar
github-actions[bot] [Fri, 12 Dec 2025 04:37:58 +0000 (04:37 +0000)] 
Scheduled fuzzing: Update src/tests/fuzzer-corpus/util.tar

2 weeks agoScheduled fuzzing: Update src/tests/fuzzer-corpus/tftp.tar
github-actions[bot] [Fri, 12 Dec 2025 04:37:55 +0000 (04:37 +0000)] 
Scheduled fuzzing: Update src/tests/fuzzer-corpus/tftp.tar

2 weeks agoScheduled fuzzing: Update src/tests/fuzzer-corpus/vmps.tar
github-actions[bot] [Fri, 12 Dec 2025 04:37:19 +0000 (04:37 +0000)] 
Scheduled fuzzing: Update src/tests/fuzzer-corpus/vmps.tar

2 weeks agoScheduled fuzzing: Update src/tests/fuzzer-corpus/tacacs.tar
github-actions[bot] [Fri, 12 Dec 2025 04:37:17 +0000 (04:37 +0000)] 
Scheduled fuzzing: Update src/tests/fuzzer-corpus/tacacs.tar

3 weeks agomove WiMAX examples to the WiMAX module.
Alan T. DeKok [Thu, 11 Dec 2025 01:28:32 +0000 (20:28 -0500)] 
move WiMAX examples to the WiMAX module.

WiMAX is largely dead, so it does not need to appear in the default
configuration.

3 weeks agoenable encoder in fuzzers
Alan T. DeKok [Wed, 10 Dec 2025 04:14:25 +0000 (23:14 -0500)] 
enable encoder in fuzzers

now that we've fixed many (most?) issues with the code, we can
start to automatically test the encoders.

Instead of having a separate fuzzer test for the encoders, we just
use the fuzzer input to decode attributes, and then call the encoder
with the attributes we just found.  This should be a reasonable
test of all kinds of odd behavior

3 weeks agomanually switch to local / openssl versions of MD4 and MD5.
Alan T. DeKok [Wed, 10 Dec 2025 19:21:52 +0000 (14:21 -0500)] 
manually switch to local / openssl versions of MD4 and MD5.

The fuzzer doesn't call all of the OpenSSL initialization functions,
so if it calls any MD5 routines in RADIUS, it crashes.  If we try to
call fr_openssl_fips_mode(), we need to link to libfreeradius-tls,
libfreeradius-server, libfreeradius-unlang, and then call
fr_openssl_init(), which does a ton of other things.

The solution is to manually swap the functions to their local
versions, OR the OpenSSL versions.  This is done in fr_openssl_init()
and in fr_openssl_free().  And for good measure, in then also in
fr_openssl_fips_mode().

The previous code could boot with FIPS disabled, set the MD5
pointers, and then at some later point FIPS would be disabled.
The MD5 pointers wouldn't be updated, and bad things could happen.

That case deosn't happen now, because the current code only changes
the FIPs status once at boot.  But it's better to fix the APIs to
be more correct.

3 weeks agoreturn the expected value
Alan T. DeKok [Wed, 10 Dec 2025 18:36:08 +0000 (13:36 -0500)] 
return the expected value

not the incorrect value we found from the network data

3 weeks agoupdate fr_pair_verify() with argument to verify the values
Alan T. DeKok [Wed, 10 Dec 2025 15:10:32 +0000 (10:10 -0500)] 
update fr_pair_verify() with argument to verify the values

so that we can check more often for invalid values.  The default
is "true" for the PAIR_VERIFY() and REQUEST_VERIFY() macros.

Update the various parsers to pass "false" if they add a VP to a
list before setting the value.  This lets the tests continue to
pass, but also ensures that at normal run-time, we do the full
checks.

3 weeks agostring / octets can have length=0 and no pointer
Alan T. DeKok [Wed, 10 Dec 2025 14:42:07 +0000 (09:42 -0500)] 
string / octets can have length=0 and no pointer

in which case there isn't a need for the actual data.  The printing
and encoding routines already ignore the pointer when length=i=0

But we may want to re-visit that decision.

Also add a commented-out assertion that the pointer is NULL when
length==0.  This could perhaps be relaxed to check that the pointer
points to a NUL byte (string), or is a zero-length memory region
(octets)

3 weeks agoadd checks that attribute numbers are OK
Alan T. DeKok [Tue, 9 Dec 2025 22:05:32 +0000 (17:05 -0500)] 
add checks that attribute numbers are OK

otherwise bad things might happen during encoding

For now, not assertions. Because CI is insistent that line numbers
don't exist.

and set the internal flag appropriately for internal attributes

3 weeks agodocs-v4: Reorganize the Howto/Upgrade section into smaller pages (HIVE-4049)
nolade [Thu, 4 Dec 2025 22:11:10 +0000 (17:11 -0500)] 
docs-v4: Reorganize the Howto/Upgrade section into smaller pages (HIVE-4049)

3 weeks agoallow raw attributes in structs
Alan T. DeKok [Mon, 8 Dec 2025 20:13:51 +0000 (15:13 -0500)] 
allow raw attributes in structs

but enforce that the length is correct, so that the parent struct
is not malformed.

Only encode a struct member once, even if the admin specifies it
multiple times.

update tests to match

3 weeks agoallow bare oids only if a new flag is set
Alan T. DeKok [Mon, 8 Dec 2025 16:49:17 +0000 (11:49 -0500)] 
allow bare oids only if a new flag is set

the code also sets that flag when the "raw" prefix is used.

The tests are updated for this new syntax.

Adding a flag is useful not just for "raw", but also for protocols
wuch as DER or SNMP which might want to always allow numerical OID
strings.

3 weeks agowe know how big IP addresses are in DNS
Alan T. DeKok [Tue, 9 Dec 2025 19:52:24 +0000 (14:52 -0500)] 
we know how big IP addresses are in DNS

3 weeks agodon't create "raw" attributes with invalid numbers
Alan T. DeKok [Tue, 9 Dec 2025 14:59:39 +0000 (09:59 -0500)] 
don't create "raw" attributes with invalid numbers

they should be limited by the protocol type_size.

Update cbor tests to match.

3 weeks agoTLVs can have STRUCTs for parents, too.
Alan T. DeKok [Tue, 9 Dec 2025 18:50:01 +0000 (13:50 -0500)] 
TLVs can have STRUCTs for parents, too.

and convert assertion to run-time check.  Because the fuzzers don't
produce helpful stack traces.

3 weeks agoensure that CUI has a value.
Alan T. DeKok [Tue, 9 Dec 2025 18:45:28 +0000 (13:45 -0500)] 
ensure that CUI has a value.

3 weeks agofix assertion to be correct
Alan T. DeKok [Tue, 9 Dec 2025 18:25:17 +0000 (13:25 -0500)] 
fix assertion to be correct

3 weeks agoreturn error instead of zero on decode error
Alan T. DeKok [Tue, 9 Dec 2025 18:24:52 +0000 (13:24 -0500)] 
return error instead of zero on decode error

3 weeks agodon't do -O2 for fuzzers
Alan T. DeKok [Tue, 9 Dec 2025 17:45:35 +0000 (12:45 -0500)] 
don't do -O2 for fuzzers

hopefully this gives us stack traces instead of hex pointers

3 weeks agoLook for Message-Authenticator in the correct list
Nick Porter [Tue, 9 Dec 2025 15:57:20 +0000 (15:57 +0000)] 
Look for Message-Authenticator in the correct list

This check is for Message-Authenticator in the reply from a home server
- so look in the list the response has been decoded into.

3 weeks agohoist checks for attribute size to next_encodable
Alan T. DeKok [Tue, 9 Dec 2025 14:27:59 +0000 (09:27 -0500)] 
hoist checks for attribute size to next_encodable

so that we don't hit assertions with unknown attributes.  The
longer term fix is to allow raw attributes under VSAs, even if
they do break the hierarchy.

Also update the encoder so that when it switches over types, the
"default" case is the error one.  This ensures that the functions
only get called with data types that they support.

3 weeks agocatch more corner cases
Alan T. DeKok [Mon, 8 Dec 2025 21:26:42 +0000 (16:26 -0500)] 
catch more corner cases

3 weeks agoupdate attribute references
Alan T. DeKok [Mon, 8 Dec 2025 20:14:19 +0000 (15:14 -0500)] 
update attribute references

3 weeks agoadd Homebrew / OSX magic for fuzzer builds
Alan T. DeKok [Mon, 8 Dec 2025 20:42:43 +0000 (15:42 -0500)] 
add Homebrew / OSX magic for fuzzer builds

3 weeks agotypo
Alan T. DeKok [Mon, 8 Dec 2025 20:19:20 +0000 (15:19 -0500)] 
typo

3 weeks agoremove old file which doesn't work
Alan T. DeKok [Mon, 8 Dec 2025 18:08:56 +0000 (13:08 -0500)] 
remove old file which doesn't work

3 weeks agoCID 1675662
Alan T. DeKok [Mon, 8 Dec 2025 17:06:01 +0000 (12:06 -0500)] 
CID 1675662

3 weeks agoCID 1675661
Alan T. DeKok [Mon, 8 Dec 2025 17:05:51 +0000 (12:05 -0500)] 
CID 1675661

3 weeks agoclean up unknown attributes
Alan T. DeKok [Sun, 7 Dec 2025 13:52:05 +0000 (08:52 -0500)] 
clean up unknown attributes

print union + child if the child is raw

update the struct encoder/decoder to create raw UNION members
as children of the union, instead of as children of the struct

add and use dict_attr_unknown_init(), which unifies the creation
and checking of unknown attributes.  So that we can enforce
common rules and restrictions.

3 weeks agoadd more "\n"
Alan T. DeKok [Sun, 7 Dec 2025 01:38:07 +0000 (20:38 -0500)] 
add more "\n"

3 weeks agoattribute names cannot be solely numerical
Alan T. DeKok [Sun, 7 Dec 2025 00:48:17 +0000 (19:48 -0500)] 
attribute names cannot be solely numerical

3 weeks agoclean up set type and length
Alan T. DeKok [Sat, 6 Dec 2025 20:10:19 +0000 (15:10 -0500)] 
clean up set type and length

so that it's done in the dict_attr_parent_init() function

3 weeks agono need to check the number when parsing the OID
Alan T. DeKok [Sat, 6 Dec 2025 18:47:53 +0000 (13:47 -0500)] 
no need to check the number when parsing the OID

we just look it up in the dictionary.  If it's not found, then we
return a "not found" error.

There's no need to return a more descriptive error.

3 weeks agoremove last vestiges of "keys can have children"
Alan T. DeKok [Sat, 6 Dec 2025 17:02:36 +0000 (12:02 -0500)] 
remove last vestiges of "keys can have children"

3 weeks agomove "set type_size and length" to separate function
Alan T. DeKok [Sat, 6 Dec 2025 16:26:53 +0000 (11:26 -0500)] 
move "set type_size and length" to separate function

and fix its logic so that it's correct for all protocols, and for
the different kinds of VSAs we have in RADIUS.

Previously, if anyone had defined USR VSAs inside of the
Extended-Vendor-Specific-Attribute space, they would have been
encoded in the USR TLV format, and not the standard RADIUS 1/1
format.

While RFC 8044 allows for "vsa" to have any format, it also recommends
that they use the "tlv" format.

RFC 8044 doesn't recommend that the "evs" data type use the "tlv"
format, but it should.  If vendors use different formats for
attributes under the "evs" data type, then we will need to extend
the dictionary parser to allow attributes of type 'vendor' to
specify their own data type and length.

3 weeks agoset the default type size for a dictionary
Alan T. DeKok [Sat, 6 Dec 2025 16:24:30 +0000 (11:24 -0500)] 
set the default type size for a dictionary

from the protocol library which we loaded.

3 weeks agoVSA type size depends on the VENDOR type size, but only for RADIUS
Alan T. DeKok [Sat, 6 Dec 2025 15:40:30 +0000 (10:40 -0500)] 
VSA type size depends on the VENDOR type size, but only for RADIUS

the other protocols are a bit better here.

3 weeks agoenforce correct mapping between protocol name and number
Alan T. DeKok [Sat, 6 Dec 2025 15:33:27 +0000 (10:33 -0500)] 
enforce correct mapping between protocol name and number

This is necessary because we want to have some protocol-specific
behavior in the core.  It doesn't make sense to allow the
administrator to change protocol numbers.

3 weeks agofr_dict_attr_unknown_afrom_da() can return NULL
Alan T. DeKok [Sat, 6 Dec 2025 14:34:05 +0000 (09:34 -0500)] 
fr_dict_attr_unknown_afrom_da() can return NULL

3 weeks agofix: Corrected the return values for when a default value is used when parsing config...
Ethan Thompson [Sat, 6 Dec 2025 01:44:43 +0000 (20:44 -0500)] 
fix: Corrected the return values for when a default value is used when parsing configs. (#5691)

Signed-off-by: ethan-thompson <ethan.thompson@networkradius.com>
3 weeks agoadd a "pair-compare" function
Alan T. DeKok [Thu, 4 Dec 2025 19:29:41 +0000 (14:29 -0500)] 
add a "pair-compare" function

which allows for comparison operators

4 weeks agocache the root protocol dictionary, and the internal dictionary
Alan T. DeKok [Thu, 4 Dec 2025 15:27:44 +0000 (10:27 -0500)] 
cache the root protocol dictionary, and the internal dictionary

when parsing strings, so that we can swap back and forth between
internal dictionaries, and protocol ones

4 weeks agohandle the case of internal attributes in protocol structures
Alan T. DeKok [Thu, 4 Dec 2025 15:12:50 +0000 (10:12 -0500)] 
handle the case of internal attributes in protocol structures

4 weeks agodo not allow leaf types to be in the middle of an OID string
Alan T. DeKok [Wed, 3 Dec 2025 13:46:07 +0000 (08:46 -0500)] 
do not allow leaf types to be in the middle of an OID string

specifically, key fields.  But the parser actually allowed
anything to be used.  The results were accidental, and therefore
wrong.

Update map-xlat-struct input to match.  The test actually doesn't
use the input Client-ID, so the value doesn't matter.  But the
old input relied on assigning hex values to attributes of type
"group".

And when updated to use UUID inputs, the resulting output created
attributes with incorrect parentage.  The issue seems to be the
DHCPv6 protocol decoder (or more likely the struct decoder).  But
for now, we avoid the problem and move on.

i.e. input

Client-ID.UUID.Value = 0xabcdef

gives output

Debug :     Client-ID {
Debug :       Value.UUID {
Debug :         Value = 0xabcdef
Debug :       }
Debug :     }

which is wrong.  This output shows that the UUID pair is being
created as a child of Client-ID.  Instead, there should be an
intermediate Value created, and then the UUID should be a child
of that.

4 weeks agoremove "key as structural element" from tests
Alan T. DeKok [Tue, 2 Dec 2025 20:46:07 +0000 (15:46 -0500)] 
remove "key as structural element" from tests

4 weeks agoit's OK to not be given an attribute
Alan T. DeKok [Sun, 30 Nov 2025 16:28:02 +0000 (11:28 -0500)] 
it's OK to not be given an attribute

just load all of the dictionaries, and then exit.

4 weeks agoexpose API to create one unknown attribute from a numbered OID
Alan T. DeKok [Mon, 1 Dec 2025 21:33:26 +0000 (16:33 -0500)] 
expose API to create one unknown attribute from a numbered OID

4 weeks agomake the error a little but clearer
Alan T. DeKok [Tue, 2 Dec 2025 17:48:01 +0000 (12:48 -0500)] 
make the error a little but clearer

4 weeks agoadd and use FR_DBUFF_ERROR_OFFSET
Alan T. DeKok [Tue, 2 Dec 2025 17:35:30 +0000 (12:35 -0500)] 
add and use FR_DBUFF_ERROR_OFFSET

so that we don't have int64 underflow when subtracting offsets
from error slen

arguably we should instead have an error pointer like is done in
the sbuffs, and with fr_sbuff_error()

4 weeks agouse fr_dbuff_used()
Alan T. DeKok [Tue, 2 Dec 2025 17:24:54 +0000 (12:24 -0500)] 
use fr_dbuff_used()

4 weeks agoupdate comment
Alan T. DeKok [Mon, 1 Dec 2025 20:37:25 +0000 (15:37 -0500)] 
update comment

4 weeks agocheck limits on the data.
Alan T. DeKok [Tue, 2 Dec 2025 17:25:29 +0000 (12:25 -0500)] 
check limits on the data.

to catch the corner case of the encoder returning unrealistic
amounts of data

4 weeks agotweak output to be a bit clearer
Alan T. DeKok [Sun, 30 Nov 2025 19:24:31 +0000 (14:24 -0500)] 
tweak output to be a bit clearer

4 weeks agoInclude Genexis DHCPv4 dictionary
Nick Porter [Mon, 1 Dec 2025 12:11:44 +0000 (12:11 +0000)] 
Include Genexis DHCPv4 dictionary

4 weeks agoexport fr_dict_attr_unknown_alloc()
Alan T. DeKok [Sun, 30 Nov 2025 15:02:50 +0000 (10:02 -0500)] 
export fr_dict_attr_unknown_alloc()

and limit the types of unknown attributes which can be created