You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rocketmq.apache.org by "Frun1na (via GitHub)" <gi...@apache.org> on 2026/09/21 01:57:51 UTC
[PR] fix(rmqctl): escape control characters in table cell output [rocketmq-dashboard]
Frun1na opened a new pull request, #4661:
URL: https://github.com/apache/rocketmq-dashboard/pull/4661
### Which Issue(s) This PR Fixes
- Fixes #<BACKFILL>
### Brief Description
The table renderer builds each row with `strings.Join(values, "\t")` and feeds it to a
`tabwriter` with default flags, and `stringify` returns server-provided strings verbatim. Any
cell value containing a raw tab is read as a column delimiter — every following column of that
row shifts — and an embedded newline or carriage return splits the row in two or overwrites the
line start on the terminal. The corruption is data-dependent and silent in table mode (JSON and
YAML output are unaffected): broker descriptions, error text, client hostnames and user-supplied
topic or group metadata can all carry these characters.
`stringify` is only used by `Rows` (table rendering), so escaping there cannot affect the JSON
or YAML output paths. The fix renders `\t`, `\n` and `\r` as their escape sequences inside
cells.
### How Did You Test This Change?
New test `TestRowsEscapesControlCharactersInCellValues` renders a row whose description contains
tab, newline and carriage return and asserts the output is exactly one header line plus one data
line with the escaped value. It fails on the pre-fix code (the embedded tab and newline produce
three lines and shift the columns):
```
$ cd rmqctl && go test ./...
ok github.com/apache/rocketmq-dashboard/rmqctl/cmd
ok github.com/apache/rocketmq-dashboard/rmqctl/internal/catalog
ok github.com/apache/rocketmq-dashboard/rmqctl/internal/catalog/generate
ok github.com/apache/rocketmq-dashboard/rmqctl/internal/config
ok github.com/apache/rocketmq-dashboard/rmqctl/internal/output
ok github.com/apache/rocketmq-dashboard/rmqctl/internal/studio
```
- [x] Tests added or updated for non-trivial changes
- [x] No new source files (no license headers needed)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@rocketmq.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] fix(rmqctl): escape control characters in table cell output [rocketmq-dashboard]
Posted by "lizhimins (via GitHub)" <gi...@apache.org>.
lizhimins merged PR #4661:
URL: https://github.com/apache/rocketmq-dashboard/pull/4661
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@rocketmq.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org