From: Alan T. DeKok Date: Sun, 29 Oct 2023 16:21:00 +0000 (-0400) Subject: allow zero input X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4893a139f68257a6726c5ff2388f5944635150f5;p=thirdparty%2Ffreeradius-server.git allow zero input --- diff --git a/src/lib/util/pair_legacy.c b/src/lib/util/pair_legacy.c index 295e3ba4d65..c2583cebdc2 100644 --- a/src/lib/util/pair_legacy.c +++ b/src/lib/util/pair_legacy.c @@ -151,6 +151,8 @@ fr_slen_t fr_pair_list_afrom_substr(fr_pair_parse_t const *root, fr_pair_parse_t if (fr_dict_internal()) internal = fr_dict_root(fr_dict_internal()); if (internal == root->da) internal = NULL; + if (fr_sbuff_remaining(&our_in) == 0) return 0; + redo: append = true; raw = raw_octets = false; @@ -513,7 +515,7 @@ done: keep_going |= (len > 0); } - keep_going &= (fr_sbuff_remaining(&our_in) > 0); + keep_going &= ((fr_sbuff_remaining(&our_in) > 0) || (fr_sbuff_extend(&our_in) > 0)); if (keep_going) goto redo; @@ -582,7 +584,7 @@ int fr_pair_list_afrom_file(TALLOC_CTX *ctx, fr_dict_t const *dict, fr_pair_list * * foo = { bar = baz } */ - if (fr_pair_list_afrom_substr(&root, &relative, &FR_SBUFF_IN(buf, strlen(buf))) <= 0) { + if (fr_pair_list_afrom_substr(&root, &relative, &FR_SBUFF_IN(buf, strlen(buf))) < 0) { *pfiledone = false; fr_pair_list_free(&tmp_list); return -1;