Le 06/10/2026 à 1:29 PM, ygkat a écrit :
From: Yeonggi Kim <[email protected]>

Hi,

Since 20ec1de214 (3.2-dev12), a CLI command line of exactly tune.bufsize
bytes, including its final LF, is executed and then followed by endless
"Unknown command" errors. b_tail() wraps when the line fills its chunk,
so the last command is never detected. 40cca6d20 ("Don't read a command
or payload line into a full buffer") covers the payload side of the same
full-chunk case.

   - 1/2 computes the end of the line from the head of the chunk and its
     amount of data instead, and has a one-line reproducer.
   - 2/2 adds reg-tests/cli/cmdline_full_buffer.vtc.

The test fails without 1/2 and passes with it on master 313dae2, 3.4.6,
3.3.16 and 3.2.25. Passing b_getdelim() one byte less than the room
again, as before 20ec1de214, would avoid the loop but reject these
lines, accepted since 3.2, as too big.

Both should be backported as far as 3.2.

Thanks,
Yeonggi Kim

Yeonggi Kim (2):
   BUG/MEDIUM: cli: fix the last command detection on a full command line
   REGTESTS: cli: test a command line of exactly tune.bufsize bytes

  reg-tests/cli/cmdline_full_buffer.vtc | 53 +++++++++++++++++++++++++++
  src/cli.c                             |  8 +++-
  2 files changed, 60 insertions(+), 1 deletion(-)
  create mode 100644 reg-tests/cli/cmdline_full_buffer.vtc


Thanks ! now merged. Just a quick note, for next contributions, try to add the reg-tests in the patch fixing the bug. This simplify a bit the backports.

--
Christopher Faulet



Reply via email to