From: sashiko-bot@kernel.org
To: "Namhyung Kim" <namhyung@kernel.org>
Cc: linux-perf-users@vger.kernel.org
Subject: Re: [PATCH v4 08/10] perf symbol: Do not set binary type from symtab type
Date: Tue, 13 Oct 2026 00:08:12 +0000 [thread overview]
Message-ID: <sashiko-outbox-168778@kernel.org> (raw)
In-Reply-To: <20261012234654.60666-9-namhyung@kernel.org>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] perf: fully stripped executables falsely rejected for data access
--
commit 6b9e46855d4e0d8df1dcaaed600da2f693471adb
Author: Namhyung Kim <namhyung@kernel.org>
perf symbol: Do not set binary type from symtab type
This commit separates tracking of the DSO binary type from the symtab type.
It removes the explicit setting of the binary type during symbol loading,
deferring it until the DSO is actually opened.
> diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c
> index 4a8c298039447..116870595f75c 100644
> --- a/tools/perf/util/symbol.c
> +++ b/tools/perf/util/symbol.c
> @@ -1943,19 +1943,6 @@ int dso__load(struct dso *dso, struct map *map)
>
> if (next_slot) {
> ss_pos++;
> -
> - /*
> - * The binary type is used to find the file containing
> - * the executed instructions, so prefer the types that
> - * refer to the actual object over debug-only files such
> - * as DSO_BINARY_TYPE__DEBUGLINK.
> - */
> - if (dso__binary_type(dso) == DSO_BINARY_TYPE__NOT_FOUND ||
> - symtab_type == DSO_BINARY_TYPE__BUILD_ID_CACHE ||
> - (symtab_type == DSO_BINARY_TYPE__SYSTEM_PATH_DSO &&
> - dso__binary_type(dso) != DSO_BINARY_TYPE__BUILD_ID_CACHE))
> - dso__set_binary_type(dso, symtab_type);
> -
[Severity: Medium]
Will removing this explicit assignment cause fully stripped executables to be
falsely rejected during data access operations like perf annotate?
By leaving the DSO binary type as NOT_FOUND here, disassembly paths are forced
to fall back to dso__find_binary_type_locked() to identify the file type.
That logic attempts to verify the file using filename__has_section() for the
.text section:
tools/perf/util/dso.c:dso__find_binary_type_locked() {
...
found = filename__has_section(path, ".text");
...
}
For stripped executables (which have had their section headers removed but
still have valid PT_LOAD segments), this check returns false. Previously,
because dso__load() set the binary type directly when locating the system
path DSO, it bypassed the strict .text check.
Consequently, tools like objdump that can parse PT_LOAD segments are never
invoked, and operations fail with COULDNT_DETERMINE_FILE_TYPE.
Additionally, could this cause debuginfo files to be incorrectly selected for
data reads, since their SHT_NOBITS .text sections might falsely satisfy the
check?
> if (syms_ss && runtime_ss)
> break;
> } else {
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261012234654.60666-1-namhyung@kernel.org?part=8
next prev parent reply other threads:[~2026-10-13 0:08 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-12 23:46 [PATCH v4 00/10] perf symbol: Properly seto DSO binary/symtab types Namhyung Kim
2026-10-12 23:46 ` [PATCH v4 01/10] perf tools: Remove redundant dso data init Namhyung Kim
2026-10-12 23:50 ` sashiko-bot
2026-10-12 23:46 ` [PATCH v4 02/10] perf tools: Try linked debug files for DSO debug info Namhyung Kim
2026-10-12 23:56 ` sashiko-bot
2026-10-13 6:08 ` Namhyung Kim
2026-10-12 23:46 ` [PATCH v4 03/10] perf symbol: Update symtab type of vmlinux from build-id cache Namhyung Kim
2026-10-12 23:52 ` sashiko-bot
2026-10-12 23:46 ` [PATCH v4 04/10] perf symbol: Set binary/symtab type for split kallsyms Namhyung Kim
2026-10-12 23:53 ` sashiko-bot
2026-10-12 23:46 ` [PATCH v4 05/10] perf symbol: Get rid of machine_or_dso_e_machine() Namhyung Kim
2026-10-13 0:03 ` sashiko-bot
2026-10-12 23:46 ` [PATCH v4 06/10] perf tools: Factor out dso__find_binary_type() Namhyung Kim
2026-10-12 23:58 ` sashiko-bot
2026-10-13 6:11 ` Namhyung Kim
2026-10-12 23:46 ` [PATCH v4 07/10] perf symbol: Set binary type for JIT map DSOs Namhyung Kim
2026-10-12 23:59 ` sashiko-bot
2026-10-12 23:46 ` [PATCH v4 08/10] perf symbol: Do not set binary type from symtab type Namhyung Kim
2026-10-13 0:08 ` sashiko-bot [this message]
2026-10-13 6:18 ` Namhyung Kim
2026-10-12 23:46 ` [PATCH v4 09/10] perf annotate: Simplify symbol__disassemble() with dso binary_type Namhyung Kim
2026-10-13 0:06 ` sashiko-bot
2026-10-12 23:46 ` [PATCH v4 10/10] perf test: Fix dso data tests Namhyung Kim
2026-10-13 0:06 ` 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=sashiko-outbox-168778@kernel.org \
--to=sashiko-bot@kernel.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=namhyung@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox