coredump, vmcore: Set p_align to 4 for PT_NOTE
authorFangrui Song <maskray@google.com>
Fri, 12 May 2023 02:25:28 +0000 (02:25 +0000)
committerKees Cook <keescook@chromium.org>
Tue, 16 May 2023 21:32:00 +0000 (14:32 -0700)
commit60592fb6b67c653beaa2e7acad9a9d7aa0b71dff
tree27f14ecfcbf21dd70c09f2b27764a0c38a1eacd0
parentf1fcbaa18b28dec10281551dfe6ed3a3ed80e3d6
coredump, vmcore: Set p_align to 4 for PT_NOTE

Tools like readelf/llvm-readelf use p_align to parse a PT_NOTE program
header as an array of 4-byte entries or 8-byte entries. Currently, there
are workarounds[1] in place for Linux to treat p_align==0 as 4. However,
it would be more appropriate to set the correct alignment so that tools
do not have to rely on guesswork. FreeBSD coredumps set p_align to 4 as
well.

[1]: https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=82ed9683ec099d8205dc499ac84febc975235af6
[2]: https://reviews.llvm.org/D150022

Signed-off-by: Fangrui Song <maskray@google.com>
Signed-off-by: Kees Cook <keescook@chromium.org>
Link: https://lore.kernel.org/r/20230512022528.3430327-1-maskray@google.com
fs/binfmt_elf.c
fs/binfmt_elf_fdpic.c
fs/proc/vmcore.c