From: Arran Cudbard-Bell Date: Wed, 27 Oct 2021 16:59:30 +0000 (-0400) Subject: Fill missed element in decode array X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f6b43b65c7424875a2a2268943e6c6a71e3042d4;p=thirdparty%2Ffreeradius-server.git Fill missed element in decode array Break if either !a || !b even if it's not an error --- diff --git a/src/lib/util/base16.c b/src/lib/util/base16.c index 3136e53a851..5667ea2d069 100644 --- a/src/lib/util/base16.c +++ b/src/lib/util/base16.c @@ -98,7 +98,7 @@ uint8_t const fr_base16_alphabet_decode_mc[UINT8_MAX + 1] = { ['d'] = 13, ['e'] = 14, ['f'] = 15, - F128(103, UINT8_MAX), F16(231, UINT8_MAX), F8(247, UINT8_MAX) + F128(103, UINT8_MAX), F16(231, UINT8_MAX), F8(247, UINT8_MAX), F1(255, UINT8_MAX) }; /** Convert binary data to a hex string @@ -158,6 +158,7 @@ ssize_t fr_base16_decode_nstd(fr_sbuff_parse_error_t *err, fr_dbuff_t *out, fr_s if (err) *err = FR_SBUFF_PARSE_ERROR_TRAILING; return -fr_sbuff_used(&our_in); } + break; } FR_DBUFF_IN_BYTES_RETURN(&our_out, (alphabet[us(p[0])] << 4) | alphabet[us(p[1])]); diff --git a/src/tests/unit/xlat/base.txt b/src/tests/unit/xlat/base.txt index bd95052e9e7..bb2b790b78b 100644 --- a/src/tests/unit/xlat/base.txt +++ b/src/tests/unit/xlat/base.txt @@ -64,7 +64,7 @@ xlat %{33} match ERROR offset 2: Invalid regex reference. Must be in range 0-32 xlat %{3a} -match ERROR offset 2: Invalid regex reference. Must be in range 0-32 +match ERROR offset 2: Unexpected text after attribute reference xlat %{-3} match ERROR offset 2: Unresolved attributes not allowed in expansions here