Re: [PATCH v3] staging: media: atomisp: refactor pipe graph dump stage formatting

From: Andy Shevchenko

Date: Sun Jul 05 2026 - 10:22:55 EST


On Sun, Jul 05, 2026 at 12:38:44AM -0700, Neal Patalay wrote:
> The original implementation of ia_css_debug_pipe_graph_dump_stage()
> includes an off-by-one error where the original strscpy() size dropped
> characters immediately before newlines. It also allocates over 600
> bytes across multiple buffers on the stack. Address these shortcomings
> and reduce stack usage with a single 256 byte buffer via a new helper
> function, ia_css_debug_build_info().

...

> +static void ia_css_debug_build_info(char *info, size_t info_size,
> + int *offset,
> + const char *flag_str, size_t flag_str_size,
> + int *line_len)
> +{
> + int len = *line_len;
> + int off = *offset;
> + int len_written;

The blank line must divide the definition and code blocks.

> + /*
> + * If new line length exceeds max line length,
> + * replace the last ',' with a "\\n"

Missing period at the end.

> + */
> + if (len > 0 && info_size - off >= 2 &&
> + len + flag_str_size > ENABLE_LINE_MAX_LENGTH) {
> + info[off - 1] = '\\';

If for some reason len is > 0 and offset is 0, this will write beyond
the boundaries.

> + info[off] = 'n';
> + off += 1;
> + len = 0;
> + }

> + len_written = scnprintf(info + off, info_size - off,
> + "%s,", flag_str);

Broken indentation. Note the statement fits a single line.

> + *offset = off + len_written;
> + *line_len = len + len_written;
> +}

This will continue writing even if there are more than 3 lines.

--
With Best Regards,
Andy Shevchenko