All of lore.kernel.org
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: "Arnaldo Carvalho de Melo" <acme@kernel.org>
Cc: linux-perf-users@vger.kernel.org
Subject: Re: [PATCH 05/12] perf debuginfo: Show the debuginfod fetch progress and keys in the TUI
Date: Wed, 16 Sep 2026 18:44:33 +0000	[thread overview]
Message-ID: <20260916184434.203661F00899@smtp.kernel.org> (raw)
In-Reply-To: <20260916183215.54305-6-acme@kernel.org>

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] perf: terminal width underflow in ui__progress_window causes DoS
--

commit b92eb48b4032b30d5c7972471d8fd2b1f910094c
Author: Arnaldo Carvalho de Melo <acme@redhat.com>

perf debuginfo: Show the debuginfod fetch progress and keys in the TUI

This commit implements a TUI progress window for debuginfod fetches to
prevent the UI from appearing hung during long operations. It handles word
wrapping and keyboard interruptions in a constrained terminal space.

> diff --git a/tools/perf/ui/tui/util.c b/tools/perf/ui/tui/util.c
> index e4d322ce0b54c..c3274b92b0e22 100644
> --- a/tools/perf/ui/tui/util.c
> +++ b/tools/perf/ui/tui/util.c
[ ... ]
> @@ -272,3 +274,178 @@ struct perf_error_ops perf_tui_eops = {
>  	.error		= perf_tui__error,
>  	.warning	= perf_tui__warning,
>  };
[ ... ]
> +void ui__progress_window(const char *title, const char *text,
> +			 u64 fetched, u64 total)
> +{
[ ... ]
> +	ui__refresh_dimensions(false);
> +	mutex_lock(&ui__lock);
> +	inner = SLtt_Screen_Cols - 2;
> +	if (inner > 255)
> +		inner = 255;

[Severity: Medium]
What happens to inner if the terminal is very narrow and SLtt_Screen_Cols
is less than 2? Since inner is a signed integer and is computed without a
lower bound clamp, it can evaluate to a negative value.

> +	nr_lines = progress_window__wrap(text, inner, lines);
> +	height = nr_lines + 3;
[ ... ]
> +	SLsmg_gotorc(y++, 1);
> +	len = strlen(title);
> +	if (len > (size_t)inner)
> +		len = inner;

[Severity: Medium]
When inner is negative, it gets cast to a large size_t here. Doesn't this
bypass the truncation logic and allow the title to exceed the bounded width?

> +	SLsmg_write_nchars(title, len);
> +	for (i = 0; i < nr_lines; i++, y++) {
> +		SLsmg_gotorc(y, 1);
> +		SLsmg_write_nstring(lines[i], SLtt_Screen_Cols - 2);

[Severity: Medium]
If SLtt_Screen_Cols - 2 evaluates to a negative number, passing it directly
to an API expecting an unsigned length could trigger massive space padding.
Can this lead to a 100% CPU lockup or hang of the perf tool if a user resizes
the terminal to 1 column during a debuginfod fetch?

> +	}
> +	SLsmg_gotorc(y, 1);
> +	SLsmg_write_nstring(bytes, SLtt_Screen_Cols - 2);

[Severity: Medium]
Similarly, wouldn't passing the negative width here to the SLang library
cause the same issue for the bytes line?

> +	SLsmg_refresh();
> +	mutex_unlock(&ui__lock);
> +}

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260916183215.54305-1-acme@kernel.org?part=5

  reply	other threads:[~2026-09-16 18:44 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-16 18:32 [PATCH v6 0/12] perf tools: Annotate fixes, stdio progress indication, debuginfo-client in more places Arnaldo Carvalho de Melo
2026-09-16 18:32 ` [PATCH 01/12] perf test: Skip data_type_profiling when the PMU cannot record memory events Arnaldo Carvalho de Melo
2026-09-16 18:38   ` sashiko-bot
2026-09-16 18:32 ` [PATCH 02/12] perf debuginfo: Fetch debuginfo keyed by build ID using debuginfod Arnaldo Carvalho de Melo
2026-09-16 18:40   ` sashiko-bot
2026-09-16 18:32 ` [PATCH 03/12] perf config: Move perf_config__set_variable() to util/config.c Arnaldo Carvalho de Melo
2026-09-16 18:43   ` sashiko-bot
2026-09-16 18:32 ` [PATCH 04/12] perf debuginfo: Let the user skip and disable debuginfod fetches Arnaldo Carvalho de Melo
2026-09-16 18:46   ` sashiko-bot
2026-09-16 18:32 ` [PATCH 05/12] perf debuginfo: Show the debuginfod fetch progress and keys in the TUI Arnaldo Carvalho de Melo
2026-09-16 18:44   ` sashiko-bot [this message]
2026-09-16 18:32 ` [PATCH 06/12] perf symbol: Fall back to fetching the vmlinux by build ID Arnaldo Carvalho de Melo
2026-09-16 18:47   ` sashiko-bot
2026-09-16 18:32 ` [PATCH 07/12] perf annotate-data: Show the sample count in the data-type browser Arnaldo Carvalho de Melo
2026-09-16 18:41   ` sashiko-bot
2026-09-16 18:32 ` [PATCH 08/12] perf report: Add --progress option Arnaldo Carvalho de Melo
2026-09-16 18:43   ` sashiko-bot
2026-09-16 18:32 ` [PATCH 09/12] perf scripts: Add perf-stuck, to tell where a running perf is stuck Arnaldo Carvalho de Melo
2026-09-16 18:38   ` sashiko-bot
2026-09-16 18:32 ` [PATCH 10/12] perf annotate-data: Resolve type DIEs in the debug file they came from Arnaldo Carvalho de Melo
2026-09-16 18:44   ` sashiko-bot
2026-09-16 18:32 ` [PATCH 11/12] perf mem record: Request PERF_SAMPLE_CPU by default Arnaldo Carvalho de Melo
2026-09-16 18:45   ` sashiko-bot
2026-09-16 18:32 ` [PATCH 12/12] perf mem record: Use the IBS swfilt filter when available Arnaldo Carvalho de Melo
2026-09-16 18:43   ` sashiko-bot
  -- strict thread matches above, loose matches on Subject: below --
2026-09-16 11:47 [PATCH v6 0/12] perf tools: Annotate fixes, stdio progress indication, debuginfo-client in more places Arnaldo Carvalho de Melo
2026-09-16 11:47 ` [PATCH 05/12] perf debuginfo: Show the debuginfod fetch progress and keys in the TUI Arnaldo Carvalho de Melo
2026-09-16 12:00   ` sashiko-bot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260916184434.203661F00899@smtp.kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=acme@kernel.org \
    --cc=linux-perf-users@vger.kernel.org \
    --cc=sashiko-reviews@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.