linux-perf-users.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Riccardo Mancini <rickyman7@gmail.com>
Cc: Namhyung Kim <namhyung@kernel.org>,
	Ian Rogers <irogers@google.com>,
	Peter Zijlstra <peterz@infradead.org>,
	Ingo Molnar <mingo@redhat.com>,
	Mark Rutland <mark.rutland@arm.com>,
	Alexander Shishkin <alexander.shishkin@linux.intel.com>,
	Jiri Olsa <jolsa@redhat.com>, Martin Liska <mliska@suse.cz>,
	linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] perf annotate: fix 's' on source line when disasm is empty
Date: Mon, 5 Jul 2021 14:52:52 -0300	[thread overview]
Message-ID: <YONG9IVtBWz6tE2d@kernel.org> (raw)
In-Reply-To: <20210705161524.72953-1-rickyman7@gmail.com>

Em Mon, Jul 05, 2021 at 06:15:25PM +0200, Riccardo Mancini escreveu:
> If the disasm is empty, 's' should fail. Instead it seemingly works,
> hiding the empty lines and causing an assertion error on the next
> time annotate is called (from within perf report).
> The problem is caused by a buffer overflow, caused by a wrong
> exit condition in annotate_browser__find_next_asm_line, which checks
> browser->b.top instead of browser->b.entries.
> 
> This patch fixes the issue, making annotate_browser__toggle_source
> fail if the disasm is empty (nothing happens to the user).
> 
> Fixes: 6de249d66d2e

Next time please make the fixes be of this form:

Fixes: 6de249d66d2e7881 ("perf annotate: Allow 's' on source code lines")

⬢[acme@toolbox perf]$ git config core.abbrev 16
⬢[acme@toolbox perf]$ git config core.abbrev
16
⬢[acme@toolbox perf]$ head -2 ~/.gitconfig 
[core]
	abbrev = 16
⬢[acme@toolbox perf]$ 

Thanks, applied.

- Arnaldo

> Signed-off-by: Riccardo Mancini <rickyman7@gmail.com>
> ---
>  tools/perf/ui/browsers/annotate.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/tools/perf/ui/browsers/annotate.c b/tools/perf/ui/browsers/annotate.c
> index f5509a958e38..5812a2214cc1 100644
> --- a/tools/perf/ui/browsers/annotate.c
> +++ b/tools/perf/ui/browsers/annotate.c
> @@ -350,14 +350,14 @@ static struct annotation_line *annotate_browser__find_next_asm_line(
>  	struct annotation_line *it = al;
>  
>  	/* find next asm line */
> -	list_for_each_entry_continue(it, browser->b.top, node) {
> +	list_for_each_entry_continue(it, browser->b.entries, node) {
>  		if (it->idx_asm >= 0)
>  			return it;
>  	}
>  
>  	/* no asm line found forwards, try backwards */
>  	it = al;
> -	list_for_each_entry_continue_reverse(it, browser->b.top, node) {
> +	list_for_each_entry_continue_reverse(it, browser->b.entries, node) {
>  		if (it->idx_asm >= 0)
>  			return it;
>  	}
> -- 
> 2.23.0
> 

-- 

- Arnaldo

      reply	other threads:[~2021-07-05 17:52 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-05 16:15 Riccardo Mancini
2021-07-05 17:52 ` Arnaldo Carvalho de Melo [this message]

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=YONG9IVtBWz6tE2d@kernel.org \
    --to=acme@kernel.org \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=irogers@google.com \
    --cc=jolsa@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-perf-users@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=mingo@redhat.com \
    --cc=mliska@suse.cz \
    --cc=namhyung@kernel.org \
    --cc=peterz@infradead.org \
    --cc=rickyman7@gmail.com \
    --subject='Re: [PATCH] perf annotate: fix '\''s'\'' on source line when disasm is empty' \
    /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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).