From: Alan T. DeKok Date: Sat, 13 Dec 2025 12:37:18 +0000 (-0500) Subject: "encode no data" is allowed X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8141b1bec499ed02e161aaf11b7e9b4f6fdf2beb;p=thirdparty%2Ffreeradius-server.git "encode no data" is allowed --- diff --git a/src/lib/util/encode.c b/src/lib/util/encode.c index a76ca0a4093..033483b1b3f 100644 --- a/src/lib/util/encode.c +++ b/src/lib/util/encode.c @@ -146,7 +146,7 @@ ssize_t fr_pair_ref_to_network(fr_dbuff_t *dbuff, fr_da_stack_t *da_stack, unsig * The foreign functions don't take a cursor, so we have to update the cursor ourselves. */ slen = proto->encode(&work_dbuff, &vp->vp_group); - if (slen <= 0) return slen; + if (slen < 0) return slen; FR_PROTO_HEX_DUMP(fr_dbuff_start(&work_dbuff), fr_dbuff_used(&work_dbuff), "group ref"); diff --git a/src/tests/unit/protocols/radius/foreign.txt b/src/tests/unit/protocols/radius/foreign.txt index ab56efb48e7..8fa171003f0 100644 --- a/src/tests/unit/protocols/radius/foreign.txt +++ b/src/tests/unit/protocols/radius/foreign.txt @@ -75,5 +75,8 @@ match 1a 0b 00 00 19 7f 66 05 35 01 01 decode-pair - match Vendor-Specific = { Nokia-SR = { ToServer-Dhcp-Options = { Message-Type = ::Discover } } } +decode-proto 05 ff 00 1e 00 2a 3e 00 c7 00 00 18 13 00 2f 00 00 20 00 00 1a 0a 00 00 19 7f 66 04 21 00 +match Packet-Type = ::Accounting-Response, Packet-Authentication-Vector = 0x002a3e00c700001813002f0000200000, Vendor-Specific = { Nokia-SR = { ToServer-Dhcp-Options = { } } } + count -match 29 +match 31