From: Dave Martin <Dave.Martin@arm.com>
To: linux-kernel@vger.kernel.org
Cc: Oleg Nesterov <oleg@redhat.com>, Kees Cook <kees@kernel.org>,
Akihiko Odaki <akihiko.odaki@daynix.com>
Subject: [PATCH 23/23] binfmt_elf: Warn on missing or suspicious regset note names
Date: Tue, 1 Jul 2025 14:56:16 +0100 [thread overview]
Message-ID: <20250701135616.29630-24-Dave.Martin@arm.com> (raw)
In-Reply-To: <20250701135616.29630-1-Dave.Martin@arm.com>
Now that all regset definitions declare an explicit note name, warn if
the note name is missing when generating a core dump. Simplify the
fallback to always guess "LINUX", which is appropriate for all
Linux-specific notes (i.e., all newly added notes, for a long time
now). The one standard exception (PR_FPREG) will no longer have an
"unexpected" note name overridden, but a warning will still be emitted.
Also warn if the specified note name doesn't match the legacy
pattern -- but don't bother to override the name in this case. This
warning can be removed in future if new note types emerge that require
a specific note name that is not "LINUX".
No functional change, beyond the extra noise in dmesg and not
overriding an unexpected note name for PR_FPREG any more.
Now that all upstream arches are ported to use USER_REGSET_NOTE_TYPE(),
new regsets created by copy-pasting existing code should end up correct
by construction.
Signed-off-by: Dave Martin <Dave.Martin@arm.com>
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: Kees Cook <kees@kernel.org>
Cc: Akihiko Odaki <akihiko.odaki@daynix.com>
---
***NOTE***
This patch is included here for completeness, but I expect to repost it
in a future cycle, once the arch patches have gone in.
Un-migrated arches will trigger WARNs with this patch applied, and
arches that don't specify codedump note names will always get
"LINUX" -- since the whole point is to stop guessing the note name in
the core code.
On _unpatched_ arches (only) this is a potential ABI break for the
NT_PRFPREG note (which, for historical reasons, is a "CORE" note even
though it is OS-specific on most or all arches).
Cheers
---Dave
---
fs/binfmt_elf.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c
index 89063d1d9e9a..92cf005468b5 100644
--- a/fs/binfmt_elf.c
+++ b/fs/binfmt_elf.c
@@ -1750,8 +1750,13 @@ static int fill_thread_core_info(struct elf_thread_core_info *t,
if (is_fpreg)
SET_PR_FPVALID(&t->prstatus);
- if (!note_name)
- note_name = is_fpreg ? NN_PRFPREG : "LINUX";
+ /* There should be a note name, but if not, guess: */
+ if (WARN_ON_ONCE(!note_name))
+ note_name = "LINUX";
+ else
+ /* Warn on non-legacy-compatible names, for now. */
+ WARN_ON_ONCE(strcmp(note_name,
+ is_fpreg ? "CORE" : "LINUX"));
__fill_note(&t->notes[note_iter], note_name, note_type,
ret, data);
--
2.34.1
next prev parent reply other threads:[~2025-07-01 13:57 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-01 13:55 [PATCH 00/23] binfmt_elf,arch/*: Use elf.h for coredump " Dave Martin
2025-07-01 13:55 ` [PATCH 01/23] regset: Fix kerneldoc for struct regset_get() in user_regset Dave Martin
2025-07-01 13:55 ` [PATCH 02/23] regset: Add explicit core note name in struct user_regset Dave Martin
2025-07-09 11:57 ` Alexander Gordeev
2025-07-01 13:55 ` [PATCH 03/23] binfmt_elf: Dump non-arch notes with strictly matching name and type Dave Martin
2025-07-01 13:55 ` [PATCH 04/23] ARC: ptrace: Use USER_REGSET_NOTE_TYPE() to specify regset note names Dave Martin
2025-07-01 13:55 ` [PATCH 05/23] ARM: " Dave Martin
2025-07-01 13:55 ` [PATCH 06/23] arm64: " Dave Martin
2025-07-01 13:56 ` [PATCH 07/23] csky: " Dave Martin
2025-07-01 13:56 ` [PATCH 08/23] hexagon: " Dave Martin
2025-07-01 13:56 ` [PATCH 09/23] LoongArch: " Dave Martin
2025-07-01 13:56 ` [PATCH 10/23] m68k: " Dave Martin
2025-07-06 9:25 ` Geert Uytterhoeven
2025-07-07 10:54 ` Dave Martin
2025-07-01 13:56 ` [PATCH 11/23] MIPS: " Dave Martin
2025-07-01 13:56 ` [PATCH 12/23] nios2: " Dave Martin
2025-07-01 13:56 ` [PATCH 13/23] openrisc: " Dave Martin
2025-07-01 13:56 ` [PATCH 14/23] parisc: " Dave Martin
2025-07-01 13:56 ` [PATCH 15/23] powerpc/ptrace: " Dave Martin
2025-07-01 13:56 ` [PATCH 16/23] riscv: ptrace: " Dave Martin
2025-07-01 13:56 ` [PATCH 17/23] s390/ptrace: " Dave Martin
2025-07-09 11:58 ` Alexander Gordeev
2025-07-01 13:56 ` [PATCH 18/23] sh: ptrace: " Dave Martin
2025-07-01 13:56 ` [PATCH 19/23] sparc: " Dave Martin
2025-07-01 13:56 ` [PATCH 20/23] x86/ptrace: " Dave Martin
2025-07-01 13:56 ` [PATCH 21/23] um: ptrace: " Dave Martin
2025-07-04 11:58 ` Johannes Berg
2025-07-04 16:46 ` Dave Martin
2025-07-01 13:56 ` [PATCH 22/23] xtensa: " Dave Martin
2025-07-01 13:56 ` Dave Martin [this message]
2025-07-05 15:14 ` [PATCH 23/23] binfmt_elf: Warn on missing or suspicious " Kees Cook
2025-07-07 11:03 ` Dave Martin
2025-07-09 5:05 ` [PATCH 00/23] binfmt_elf,arch/*: Use elf.h for coredump " Akihiko Odaki
2025-07-15 5:37 ` Kees Cook
2025-07-15 10:32 ` Dave Martin
2025-08-10 21:12 ` patchwork-bot+linux-riscv
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=20250701135616.29630-24-Dave.Martin@arm.com \
--to=dave.martin@arm.com \
--cc=akihiko.odaki@daynix.com \
--cc=kees@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=oleg@redhat.com \
/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
all inboxes | Powered by JetHome®