aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
authorThorsten Blum <thorsten.blum@linux.dev>2025-04-27 13:34:24 +0200
committerThomas Bogendoerfer <tsbogend@alpha.franken.de>2025-04-30 20:04:59 +0200
commitc44572e0cc13c9afff83fd333135a0aa9b27ba26 (patch)
tree01b0cd68b843a4214fb385fc157fa2a9b20929bb
parent7f74c066e5d920b3a2f0f936060984e3b3709250 (diff)
downloadlinux-mips-fixes.tar.gz
MIPS: Fix MAX_REG_OFFSETmips-fixes_6.15_1mips-fixes
Fix MAX_REG_OFFSET to point to the last register in 'pt_regs' and not to the marker itself, which could allow regs_get_register() to return an invalid offset. Fixes: 40e084a506eb ("MIPS: Add uprobes support.") Suggested-by: Maciej W. Rozycki <macro@orcam.me.uk> Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev> Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
-rw-r--r--arch/mips/include/asm/ptrace.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/mips/include/asm/ptrace.h b/arch/mips/include/asm/ptrace.h
index 85fa9962266a2b..ef72c46b556887 100644
--- a/arch/mips/include/asm/ptrace.h
+++ b/arch/mips/include/asm/ptrace.h
@@ -65,7 +65,8 @@ static inline void instruction_pointer_set(struct pt_regs *regs,
/* Query offset/name of register from its name/offset */
extern int regs_query_register_offset(const char *name);
-#define MAX_REG_OFFSET (offsetof(struct pt_regs, __last))
+#define MAX_REG_OFFSET \
+ (offsetof(struct pt_regs, __last) - sizeof(unsigned long))
/**
* regs_get_register() - get register value from its offset