]> git.ipfire.org Git - thirdparty/freeradius-server.git/log
thirdparty/freeradius-server.git
18 hours agoDon't use strlen in talloced buffers developer/arr2036 master
Arran Cudbard-Bell [Fri, 7 Nov 2025 01:35:09 +0000 (17:35 -0800)] 
Don't use strlen in talloced buffers

18 hours agoWhitespace
Arran Cudbard-Bell [Fri, 10 Oct 2025 20:59:48 +0000 (14:59 -0600)] 
Whitespace

32 hours agoDocument %uuid.v4() and %uuid.v7() developer/ndptech
Nick Porter [Thu, 6 Nov 2025 11:42:47 +0000 (11:42 +0000)] 
Document %uuid.v4() and %uuid.v7()

32 hours agoAdd test of %uuid.v4() and %uuid.v7()
Nick Porter [Thu, 6 Nov 2025 11:28:55 +0000 (11:28 +0000)] 
Add test of %uuid.v4() and %uuid.v7()

32 hours agoAdd %uuid.v4() and %uuid.v7() for generating UUIDs
Nick Porter [Thu, 6 Nov 2025 10:41:13 +0000 (10:41 +0000)] 
Add %uuid.v4() and %uuid.v7() for generating UUIDs

44 hours agouse the correct link developer/alandekok
Alan T. DeKok [Tue, 4 Nov 2025 21:23:13 +0000 (16:23 -0500)] 
use the correct link

44 hours agohandle corner cases of Protocol-Error
Alan T. DeKok [Sun, 2 Nov 2025 19:01:14 +0000 (14:01 -0500)] 
handle corner cases of Protocol-Error

if there's no response configured, and the client supports
Protocol-Error, then synthesize a Protocol-Error with an
appropriate Error-Cause.

If there is a Protocol-Error response configured and the client
does not support it, then synthesize an appropriate response.

4 days agoAdd read / write hexdump option to TACACS listener
Nick Porter [Mon, 3 Nov 2025 12:52:47 +0000 (12:52 +0000)] 
Add read / write hexdump option to TACACS listener

4 days agoAdd read / write hexdump options to RADIUS app_io
Nick Porter [Mon, 3 Nov 2025 11:55:47 +0000 (11:55 +0000)] 
Add read / write hexdump options to RADIUS app_io

4 days agoAdd an app IO callback to set the read / write hexdump option
Nick Porter [Mon, 3 Nov 2025 11:52:58 +0000 (11:52 +0000)] 
Add an app IO callback to set the read / write hexdump option

4 days agoAdd optional hexdump of packet read and write
Nick Porter [Mon, 3 Nov 2025 11:51:25 +0000 (11:51 +0000)] 
Add optional hexdump of packet read and write

For when really low level debugging is needed

5 days agowarn if Original-Packet-Code is missing
Alan T. DeKok [Sat, 1 Nov 2025 19:26:12 +0000 (15:26 -0400)] 
warn if Original-Packet-Code is missing

and delete it if we see it

6 days agoif there's no Error-Cause, add one in
Alan T. DeKok [Sat, 1 Nov 2025 19:20:26 +0000 (15:20 -0400)] 
if there's no Error-Cause, add one in

6 days agowarn if Original-Packet-Code is missing, and delete it from the reply
Alan T. DeKok [Sat, 1 Nov 2025 18:56:40 +0000 (14:56 -0400)] 
warn if Original-Packet-Code is missing, and delete it from the reply

it's a link-layer signaling issue.  So we can nuke it as soon as
we receive it.

6 days agolet's do error messages, too
Alan T. DeKok [Fri, 31 Oct 2025 21:33:46 +0000 (17:33 -0400)] 
let's do error messages, too

6 days agoreturn error on fatal socket, not 0
Alan T. DeKok [Fri, 31 Oct 2025 21:27:45 +0000 (17:27 -0400)] 
return error on fatal socket, not 0

7 days agoThis should really be DEBUG2 to reduce noise
Nick Porter [Fri, 31 Oct 2025 17:44:19 +0000 (17:44 +0000)] 
This should really be DEBUG2 to reduce noise

Which matches the packet expiry timeout debugs

7 days agoUpdate docs on DHCP options from SQL
Nick Porter [Fri, 31 Oct 2025 17:03:58 +0000 (17:03 +0000)] 
Update docs on DHCP options from SQL

The DHCP specific schema from v3 doesn't ship with v4, and now that
`%sql()` can return multiple values this provides a more flexible
approach than the call to the `sql` module.

7 days agoAdd test of %map() with multiple input boxes
Nick Porter [Fri, 31 Oct 2025 13:39:37 +0000 (13:39 +0000)] 
Add test of %map() with multiple input boxes

7 days agoAllow %map() to work on a list of input boxes
Nick Porter [Fri, 31 Oct 2025 13:38:50 +0000 (13:38 +0000)] 
Allow %map() to work on a list of input boxes

This allows syntax like `%map(%sql("SELECT attrmap FROM ..."))` or
`%map(foo[*])` to perform multiple attribute manipulations.

7 days agohoist assertion around print_args. Fixes #5672
Alan T. DeKok [Fri, 31 Oct 2025 13:30:03 +0000 (09:30 -0400)] 
hoist assertion around print_args.  Fixes #5672

7 days agothe clone code supports leaf attributes, so allow it here, too
Alan T. DeKok [Fri, 31 Oct 2025 11:30:43 +0000 (07:30 -0400)] 
the clone code supports leaf attributes, so allow it here, too

7 days agoadd official Docker Hub link to documentation
iTrooz [Thu, 30 Oct 2025 20:59:19 +0000 (21:59 +0100)] 
add official Docker Hub link to documentation

8 days agoupdate recommendations for PAP
Alan T. DeKok [Thu, 30 Oct 2025 16:52:02 +0000 (12:52 -0400)] 
update recommendations for PAP

8 days agoTypo
Nick Porter [Thu, 30 Oct 2025 11:24:37 +0000 (11:24 +0000)] 
Typo

9 days agobe explicit about which data types we accept in the dictionaries
Alan T. DeKok [Wed, 29 Oct 2025 11:20:56 +0000 (07:20 -0400)] 
be explicit about which data types we accept in the dictionaries

9 days agoReport correct config option name. Fixes #5669
Nick Porter [Wed, 29 Oct 2025 11:44:19 +0000 (11:44 +0000)] 
Report correct config option name. Fixes #5669

9 days agoRecord the current request in the reponse ctx
Nick Porter [Wed, 29 Oct 2025 11:31:08 +0000 (11:31 +0000)] 
Record the current request in the reponse ctx

9 days agoallow 389ds legacy PBKDF2_SHA256 to use arbitrary iteration count (#5653)
Gerald Vogt [Wed, 29 Oct 2025 03:40:51 +0000 (04:40 +0100)] 
allow 389ds legacy PBKDF2_SHA256 to use arbitrary iteration count (#5653)

10 days agoallow return of negative number. Fixes #5666
Alan T. DeKok [Tue, 28 Oct 2025 13:29:08 +0000 (09:29 -0400)] 
allow return of negative number.  Fixes #5666

10 days agoomit printing a union if it has only one child.
Alan T. DeKok [Tue, 28 Oct 2025 13:06:35 +0000 (09:06 -0400)] 
omit printing a union if it has only one child.

this simplifies the output and makes it easier to understand.
it's also the counterpart to adding the ALIAS which points from
the parent of the union, to the union member.

Other parts of the server will need to be updated to omit unions,
too.  But for now, this is good enough for tests.

10 days agosimplify this code by using the updated API
Alan T. DeKok [Tue, 28 Oct 2025 12:32:53 +0000 (08:32 -0400)] 
simplify this code by using the updated API

10 days agoadd short-circuit checks to fr_pair_afrom_da_depth_nested
Alan T. DeKok [Tue, 28 Oct 2025 12:31:26 +0000 (08:31 -0400)] 
add short-circuit checks to fr_pair_afrom_da_depth_nested

10 days agoadd alias for children of UNION
Alan T. DeKok [Mon, 27 Oct 2025 21:35:57 +0000 (17:35 -0400)] 
add alias for children of UNION

so if we have:

foo  struct
  bar union
    baz  struct
            blag uint32

We do need to store that internally as the full hierarchy.

However, as a special case, we add an alias for each child:

foo struct
  bar union
    baz struct
    blag uint32

  baz ALIAS bar.baz
  blag ALIAS bar.blag

this lets the user type in something reasonable, i.e. without the
intermediate UNION.

10 days agohandle ALIAS attributes when parsing
Alan T. DeKok [Mon, 27 Oct 2025 21:32:47 +0000 (17:32 -0400)] 
handle ALIAS attributes when parsing

so that we create the full tree, and not a partial one

10 days agofix length passed to talloc_bstr_realloc()
Alan T. DeKok [Mon, 27 Oct 2025 20:33:39 +0000 (16:33 -0400)] 
fix length passed to talloc_bstr_realloc()

the meaning of the length parameter should not change depending
on the first parameter being NULL or not.

10 days agoMore DHCPv4 docs updates
Nick Porter [Tue, 28 Oct 2025 08:19:22 +0000 (08:19 +0000)] 
More DHCPv4 docs updates

11 days agoThis is really an error
Nick Porter [Mon, 27 Oct 2025 17:30:20 +0000 (17:30 +0000)] 
This is really an error

And marking it as such will create Module-Failure-Message which is
helpful for logging.

11 days agobio/haproxy: fix CRLF check in PROXY v1 parser
Joshua Rogers [Mon, 27 Oct 2025 17:10:34 +0000 (01:10 +0800)] 
bio/haproxy: fix CRLF check in PROXY v1 parser

memcmp compared 3 bytes against "\r\n", which required a trailing NUL on the wire.
Compare 2 bytes and consume 2 so valid headers are accepted and connections are not dropped.

This bug was found by ZeroPath

Signed-off-by: Joshua Rogers <MegaManSec@users.noreply.github.com>
11 days agoadd test for encoding / decoding leaf child of union
Alan T. DeKok [Mon, 27 Oct 2025 14:59:49 +0000 (10:59 -0400)] 
add test for encoding / decoding leaf child of union

11 days agoallow children of UNION to be TLV or leaf.
Alan T. DeKok [Mon, 27 Oct 2025 13:17:33 +0000 (09:17 -0400)] 
allow children of UNION to be TLV or leaf.

because the struct encoder can be updated to allow that.

Note that the struct encode / decode has not yet been updated

11 days agoalignment issues
Alan T. DeKok [Mon, 27 Oct 2025 13:17:21 +0000 (09:17 -0400)] 
alignment issues

11 days agorlm_ocsp: correct timeout comparison in OCSP_sendreq_nbio retry loop
Joshua Rogers [Sun, 26 Oct 2025 13:26:26 +0000 (21:26 +0800)] 
rlm_ocsp: correct timeout comparison in OCSP_sendreq_nbio retry loop

Previously broke out while elapsed < timeout, causing early exit and
treating OCSP as timed out. Break only when elapsed >= timeout so we
retry until the deadline. Prevents unintended skips and softfail
acceptance of revoked certs.

This bug was found with ZeroPath.

Signed-off-by: Joshua Rogers <MegaManSec@users.noreply.github.com>
11 days agoUse a consistent name
Nick Porter [Mon, 27 Oct 2025 09:42:26 +0000 (09:42 +0000)] 
Use a consistent name

11 days agoRework DHCP docs with v4 attribute names and improved rlm_files capabilities
Nick Porter [Mon, 27 Oct 2025 09:32:32 +0000 (09:32 +0000)] 
Rework DHCP docs with v4 attribute names and improved rlm_files capabilities

12 days agonew URL as per hostap list
Alan T. DeKok [Sun, 26 Oct 2025 12:08:23 +0000 (08:08 -0400)] 
new URL as per hostap list

13 days agoremove -Wno-cast-align
Alan T. DeKok [Sat, 25 Oct 2025 15:37:37 +0000 (11:37 -0400)] 
remove -Wno-cast-align

Some configure output had both -Wcast-align and -Wno-cast-align,
which doesn't make any sense.

The -Wno-cast-align is there to quiet issues with sbuff.h and
dbuff.h.  Those header files define macros which use two _Generic
statements, one for each function argument.  However, such use of
_Generic isn't limited to treating each case independently.

Instead, all possible combinations of _Generics must be valid,
even ones which don't make sense (and aren't chosen).  This results
in the compiler complaining.

Since we don't understand what's going on there, we just disable
-Wcast-align for those two header files, and leave it globally
enabled for everything else.

13 days agoremove unused macros and functions
Alan T. DeKok [Sat, 25 Oct 2025 15:23:52 +0000 (11:23 -0400)] 
remove unused macros and functions

13 days agoremove unused functions
Alan T. DeKok [Sat, 25 Oct 2025 14:33:16 +0000 (10:33 -0400)] 
remove unused functions

13 days agowe no longer need to disable this warning
Alan T. DeKok [Sat, 25 Oct 2025 10:37:52 +0000 (06:37 -0400)] 
we no longer need to disable this warning

13 days agoinitialize properly
Alan T. DeKok [Sat, 25 Oct 2025 10:51:54 +0000 (06:51 -0400)] 
initialize properly

13 days agodefine and use TEST_TERMINATOR
Alan T. DeKok [Sat, 25 Oct 2025 10:12:38 +0000 (06:12 -0400)] 
define and use TEST_TERMINATOR

13 days agofield initializers
Alan T. DeKok [Sat, 25 Oct 2025 10:12:20 +0000 (06:12 -0400)] 
field initializers

13 days agodefine and use DICT_AUTOLOAD_TERMINATOR
Alan T. DeKok [Fri, 24 Oct 2025 19:28:15 +0000 (15:28 -0400)] 
define and use DICT_AUTOLOAD_TERMINATOR

C23 complains about { NULL } being used to initialize something.
we should either use { }, or { .field = NULL }

2 weeks agoexplicitly initialize same field used by the code
Alan T. DeKok [Fri, 24 Oct 2025 19:31:48 +0000 (15:31 -0400)] 
explicitly initialize same field used by the code

2 weeks agoinitialize using the correct data type
Alan T. DeKok [Fri, 24 Oct 2025 19:12:30 +0000 (15:12 -0400)] 
initialize using the correct data type

2 weeks agosuppress Protocol-Error responses when the client doesn't support it
Alan T. DeKok [Fri, 24 Oct 2025 10:13:40 +0000 (12:13 +0200)] 
suppress Protocol-Error responses when the client doesn't support it

and print out a descriptive message as to why the Protocol-Error
packet was suppressed

but for Access-Request, swap the answer to Access-Reject.
RFC8559 already says that failed CoA can send a NAK with Error-Cause

2 weeks agoadd protocol_error flag to the client structure
Alan T. DeKok [Fri, 24 Oct 2025 10:09:56 +0000 (12:09 +0200)] 
add protocol_error flag to the client structure

this really belongs in a protocol-specific field.  Oh well.  We'll
fix that later

2 weeks agoAdd Protocol-Error support to radclient
Alan T. DeKok [Fri, 24 Oct 2025 10:05:50 +0000 (12:05 +0200)] 
Add Protocol-Error support to radclient

2 weeks agoadd Protocol-Error in more cases
Alan T. DeKok [Fri, 24 Oct 2025 10:03:14 +0000 (12:03 +0200)] 
add Protocol-Error in more cases

and clean up the code for consistency

2 weeks agowhitespace
Alan T. DeKok [Fri, 24 Oct 2025 10:03:01 +0000 (12:03 +0200)] 
whitespace

2 weeks agofix more errors found by using -std=c23
Alan T. DeKok [Thu, 23 Oct 2025 09:52:01 +0000 (11:52 +0200)] 
fix more errors found by using -std=c23

2 weeks agouse -std=c23 if it's available, otherwise use -std=c11
Alan T. DeKok [Thu, 23 Oct 2025 09:51:31 +0000 (11:51 +0200)] 
use -std=c23 if it's available, otherwise use -std=c11

the "configure" script was not yet updated

2 weeks agoCorrect return code
Nick Porter [Thu, 23 Oct 2025 13:13:30 +0000 (14:13 +0100)] 
Correct return code

If there's no "begin" query, then no child is pushed.
The expansion of the first query to run is handled by the resume
function.

2 weeks agoTest decoding repeated options at the end of a DHCPv4 packet
Nick Porter [Thu, 23 Oct 2025 09:31:02 +0000 (10:31 +0100)] 
Test decoding repeated options at the end of a DHCPv4 packet

2 weeks agoCorrectly handle 2 instances of a DHCP option at the end of a packet
Nick Porter [Thu, 23 Oct 2025 09:20:16 +0000 (10:20 +0100)] 
Correctly handle 2 instances of a DHCP option at the end of a packet

In the case a packet ends

<op n><len><data>
<op n><len><data>
<op 255>

there will only be 1 byte (the <op 255>) after going round the loop
twice.  Previously this would have failed the test (end - next) < 2
without having detected that the option code has changed.

2 weeks agofix errors found by using -std=c23
Alan T. DeKok [Thu, 23 Oct 2025 08:07:52 +0000 (10:07 +0200)] 
fix errors found by using -std=c23

2 weeks agocopy enum from Packet-Type
Alan T. DeKok [Wed, 22 Oct 2025 12:41:58 +0000 (14:41 +0200)] 
copy enum from Packet-Type

2 weeks agofix initializer for new compiler
Alan T. DeKok [Wed, 22 Oct 2025 09:09:22 +0000 (11:09 +0200)] 
fix initializer for new compiler

tmpl_escape_t has multiple fields, so you can't initialize just one
via foo.bar.baz = {}.  Instead, you have to explicitly initialize the
entire struct, via foo.bar = { .bar = {} }

2 weeks agoUse current xlats and syntax
Nick Porter [Tue, 21 Oct 2025 15:49:16 +0000 (16:49 +0100)] 
Use current xlats and syntax

2 weeks agoSubrequest types use enum format
Nick Porter [Tue, 21 Oct 2025 15:43:19 +0000 (16:43 +0100)] 
Subrequest types use enum format

2 weeks agoBetter option name
Nick Porter [Tue, 21 Oct 2025 15:39:29 +0000 (16:39 +0100)] 
Better option name

2 weeks agofr_bio_fd_unix_shutdown is called after fr_bio_fd_close
Nick Porter [Mon, 20 Oct 2025 15:34:29 +0000 (16:34 +0100)] 
fr_bio_fd_unix_shutdown is called after fr_bio_fd_close

Which means the bio state is expected to be FR_BIO_FD_STATE_CLOSED

2 weeks agoAdd test of using htrie in rlm_files for string prefix match
Nick Porter [Mon, 20 Oct 2025 09:39:36 +0000 (10:39 +0100)] 
Add test of using htrie in rlm_files for string prefix match

2 weeks agoSet option name in correct module
Nick Porter [Mon, 20 Oct 2025 09:36:02 +0000 (10:36 +0100)] 
Set option name in correct module

2 weeks agoAdd DHCPv4 Genexis V-I-Vendor-Specific options
Nick Porter [Mon, 20 Oct 2025 09:00:39 +0000 (10:00 +0100)] 
Add DHCPv4 Genexis V-I-Vendor-Specific options

2 weeks agoAdd htrie_type option to rlm_files
Nick Porter [Thu, 16 Oct 2025 13:28:13 +0000 (14:28 +0100)] 
Add htrie_type option to rlm_files

2 weeks agoPass instance data to getrecv_filename to reduce argument count
Nick Porter [Thu, 16 Oct 2025 13:09:55 +0000 (14:09 +0100)] 
Pass instance data to getrecv_filename to reduce argument count

2 weeks agoScheduled fuzzing: Update src/tests/fuzzer-corpus/der.tar
github-actions[bot] [Sun, 19 Oct 2025 04:31:25 +0000 (04:31 +0000)] 
Scheduled fuzzing: Update src/tests/fuzzer-corpus/der.tar

2 weeks agoScheduled fuzzing: Update src/tests/fuzzer-corpus/cbor.tar
github-actions[bot] [Sun, 19 Oct 2025 04:30:16 +0000 (04:30 +0000)] 
Scheduled fuzzing: Update src/tests/fuzzer-corpus/cbor.tar

3 weeks agoJust return -1 for errors (it's all the callers check) (CID #1667131)
Nick Porter [Fri, 17 Oct 2025 09:09:39 +0000 (10:09 +0100)] 
Just return -1 for errors (it's all the callers check) (CID #1667131)

3 weeks agoAdd test of %dhcpv4.decode / %dhcpv4.encode using root ctx
Nick Porter [Thu, 16 Oct 2025 12:53:04 +0000 (13:53 +0100)] 
Add test of %dhcpv4.decode / %dhcpv4.encode using root ctx

3 weeks agoAdd attributes to support Option 43 handling of TR069 options
Nick Porter [Thu, 16 Oct 2025 11:05:40 +0000 (12:05 +0100)] 
Add attributes to support Option 43 handling of TR069 options

3 weeks agoThese are defined as strings
Nick Porter [Thu, 16 Oct 2025 11:36:23 +0000 (12:36 +0100)] 
These are defined as strings

In https://www.broadband-forum.org/pdfs/tr-069-1-6-1.pdf

3 weeks agoAdd optional argument to %<proto>.decode to specify decoding root
Nick Porter [Thu, 16 Oct 2025 11:04:37 +0000 (12:04 +0100)] 
Add optional argument to %<proto>.decode to specify decoding root

3 weeks agoUse root in decode ctx as decode root for DHCPv4
Nick Porter [Thu, 16 Oct 2025 09:47:54 +0000 (10:47 +0100)] 
Use root in decode ctx as decode root for DHCPv4

Defaulting to the DHCPv4 dictionary root

3 weeks agoUse the dict_attr from the encoding context as the root for DHCPv4
Nick Porter [Thu, 16 Oct 2025 07:54:34 +0000 (08:54 +0100)] 
Use the dict_attr from the encoding context as the root for DHCPv4

3 weeks agoAdd a TLV to use as a root for decoded Option 43 data
Nick Porter [Wed, 15 Oct 2025 19:28:23 +0000 (20:28 +0100)] 
Add a TLV to use as a root for decoded Option 43 data

3 weeks ago%<proto>.encode(Foo, Foo) means encode the children of Foo with Foo as the ctx
Nick Porter [Wed, 15 Oct 2025 19:23:27 +0000 (20:23 +0100)] 
%<proto>.encode(Foo, Foo) means encode the children of Foo with Foo as the ctx

3 weeks agoVerify the relationship between the pair to encode and the root ctx
Nick Porter [Wed, 15 Oct 2025 18:51:31 +0000 (19:51 +0100)] 
Verify the relationship between the pair to encode and the root ctx

3 weeks agoAdd optional argument to %<proto>.encode() to specify encoding root
Nick Porter [Wed, 15 Oct 2025 18:47:20 +0000 (19:47 +0100)] 
Add optional argument to %<proto>.encode() to specify encoding root

And pass it to the encode context allocation routine.

3 weeks agoAdd optional dict_attr to encode / decode ctx alloc signature
Nick Porter [Wed, 15 Oct 2025 16:36:43 +0000 (17:36 +0100)] 
Add optional dict_attr to encode / decode ctx alloc signature

To allow a root DA to be specified for the encoding / decoding context

3 weeks agoCorrect path manipulation when reading all files in a directory
Nick Porter [Tue, 14 Oct 2025 17:31:49 +0000 (18:31 +0100)] 
Correct path manipulation when reading all files in a directory

3 weeks agoupdate transaction functionality so it's useful
Alan T. DeKok [Tue, 14 Oct 2025 13:17:12 +0000 (15:17 +0200)] 
update transaction functionality so it's useful

edits don't fail.  So we update the documentation to match.

grouped edits are atomic only if they're in a transaction.  So we
update the documentation to match.

But since edit statements never fail, the transaction keyword will
never detect that.  So we allow if/else/elsif statements inside of
a transaction.  And update the documentation to match.

The example documentation is also update to note that you have to
explicitly check that the assignment failed

3 weeks agoallow checking result of unlang_tmpl_push()
Alan T. DeKok [Mon, 13 Oct 2025 13:34:33 +0000 (15:34 +0200)] 
allow checking result of unlang_tmpl_push()

we don't actually do it right now, for long reasons outlined in
the comments

3 weeks agoadd UNLANG_ACTION_FAIL
Alan T. DeKok [Tue, 14 Oct 2025 12:16:56 +0000 (14:16 +0200)] 
add UNLANG_ACTION_FAIL

3 weeks agotypo
Alan T. DeKok [Tue, 14 Oct 2025 06:20:28 +0000 (08:20 +0200)] 
typo

3 weeks agoAdd Cisco VSA 49
Nick Porter [Tue, 14 Oct 2025 11:00:10 +0000 (12:00 +0100)] 
Add Cisco VSA 49

3 weeks agouse UNLANG_ACTION_FAIL
Alan T. DeKok [Mon, 13 Oct 2025 14:18:42 +0000 (16:18 +0200)] 
use UNLANG_ACTION_FAIL

instead of manually setting *p_result and returning CALCULATE_RESULT.
it's the same thing, and unifies the code path

3 weeks agodon't print catch (null) for catch { ... }
Alan T. DeKok [Mon, 13 Oct 2025 13:08:07 +0000 (15:08 +0200)] 
don't print catch (null) for catch { ... }