From: Alan T. DeKok Date: Wed, 1 Nov 2023 20:24:51 +0000 (-0400) Subject: Revert "move extend out of users_file.c to sbuff.c" X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c283f1665bf83a752aad3289dbf8accf7dce054f;p=thirdparty%2Ffreeradius-server.git Revert "move extend out of users_file.c to sbuff.c" This reverts commit 02ec7cdac5cbaa13305eb2503a23210d3af9084d. it turns out extending things in the sbuff code causes other problems. So we leave some hacks in the users_file parser. --- diff --git a/src/lib/server/users_file.c b/src/lib/server/users_file.c index 3dc9faee280..e490fa075a6 100644 --- a/src/lib/server/users_file.c +++ b/src/lib/server/users_file.c @@ -303,6 +303,8 @@ int pairlist_read(TALLOC_CTX *ctx, fr_dict_t const *dict, char const *file, PAIR bool leading_spaces; PAIR_LIST *t; + fr_sbuff_extend_lowat(NULL, &sbuff, 1024); + /* * If the line is empty or has only comments, * then we don't care about leading spaces. @@ -391,6 +393,8 @@ int pairlist_read(TALLOC_CTX *ctx, fr_dict_t const *dict, char const *file, PAIR comma = false; check_item: + fr_sbuff_extend_lowat(NULL, &sbuff, 1024); + /* * Skip spaces before the item, and allow the * check list to end on comment or LF. @@ -523,6 +527,8 @@ setup_reply: comma = false; reply_item: + fr_sbuff_extend_lowat(NULL, &sbuff, 1024); + /* * Reply items start with spaces. If there's no * spaces, then the current entry is done. Add diff --git a/src/lib/util/sbuff.c b/src/lib/util/sbuff.c index bc3269fe1a0..133b56a4d10 100644 --- a/src/lib/util/sbuff.c +++ b/src/lib/util/sbuff.c @@ -700,7 +700,7 @@ size_t fr_sbuff_out_bstrncpy(fr_sbuff_t *out, fr_sbuff_t *in, size_t len) remaining = (len - fr_sbuff_used_total(&our_in)); - if (!fr_sbuff_extend_lowat(NULL, &our_in, 32)) break; + if (!fr_sbuff_extend(&our_in)) break; chunk_len = fr_sbuff_remaining(&our_in); if (chunk_len > remaining) chunk_len = remaining; @@ -741,7 +741,7 @@ ssize_t fr_sbuff_out_bstrncpy_exact(fr_sbuff_t *out, fr_sbuff_t *in, size_t len) ssize_t copied; remaining = (len - fr_sbuff_used_total(&our_in)); - if (remaining && !fr_sbuff_extend_lowat(NULL, &our_in, 32)) return 0; + if (remaining && !fr_sbuff_extend(&our_in)) return 0; chunk_len = fr_sbuff_remaining(&our_in); if (chunk_len > remaining) chunk_len = remaining; @@ -788,7 +788,7 @@ size_t fr_sbuff_out_bstrncpy_allowed(fr_sbuff_t *out, fr_sbuff_t *in, size_t len char *p; char *end; - if (!fr_sbuff_extend_lowat(NULL, &our_in, 32)) break; + if (!fr_sbuff_extend(&our_in)) break; p = fr_sbuff_current(&our_in); end = CONSTRAINED_END(&our_in, len, fr_sbuff_used_total(&our_in)); @@ -1748,7 +1748,7 @@ size_t fr_sbuff_adv_past_allowed(fr_sbuff_t *sbuff, size_t len, bool while (total < len) { char *end; - if (!fr_sbuff_extend_lowat(NULL, sbuff, 32)) break; + if (!fr_sbuff_extend(sbuff)) break; end = CONSTRAINED_END(sbuff, len, total); p = sbuff->p; @@ -1923,7 +1923,7 @@ char *fr_sbuff_adv_to_chr(fr_sbuff_t *sbuff, size_t len, char c) char const *found; char *end; - if (!fr_sbuff_extend_lowat(NULL, &our_sbuff, 32)) break; + if (!fr_sbuff_extend(&our_sbuff)) break; end = CONSTRAINED_END(sbuff, len, total); found = memchr(our_sbuff.p, c, end - our_sbuff.p);