Re: [PATCH 2/5] perf genelf: Use unaligned-safe accessors for debug entries
From: sashiko-bot@kernel.org
Date: 2026-09-04 15:02:06
From: Arnaldo Carvalho de Melo <redacted> debug_entry records are packed with a variable-length name[] field, so entries after the first may start at addresses that are not naturally aligned. jit_process_debug_info(), get_special_opcode() and emit_lineno_info() read and write the u64 addr and int lineno fields through struct member access, which is undefined behavior on strict-alignment architectures. Use get_unaligned()/put_unaligned() to read and update each field, matching the layout the jitdump writers (LLVM, JVM agents) emit, which packs entries without padding. struct debug_entry.lineno is signed and emit_advance_lineno() takes a long line delta that relies on sign extension, so the field is read into an int: reading it into an unsigned int would turn a backward line jump into a huge forward one and corrupt the line number program. Reported-by: sashiko-bot <sashiko-bot@kernel.org> Cc: Stephane Eranian <redacted> Assisted-by: LLM Signed-off-by: Arnaldo Carvalho de Melo <redacted>
Sashiko has reviewed this patch and found no issues. It looks great! -- Sashiko AI review · https://sashiko.dev/#/patchset/20260904144058.3341-1-acme@kernel.org?part=2