[PATCH] arm64: extable: fix null deref in load_unaligned_zeropad.

Evgenii Stepanov eugenis at google.com
Fri Jan 21 18:34:47 PST 2022


ex_handler_load_unaligned_zeropad extracts the source and data register
numbers from the wrong field of the exception table.

Fixes: 753b3236
Signed-off-by: Evgenii Stepanov <eugenis at google.com>
---
 arch/arm64/mm/extable.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/arm64/mm/extable.c b/arch/arm64/mm/extable.c
index c0181e60cc98..489455309695 100644
--- a/arch/arm64/mm/extable.c
+++ b/arch/arm64/mm/extable.c
@@ -40,8 +40,8 @@ static bool
 ex_handler_load_unaligned_zeropad(const struct exception_table_entry *ex,
 				  struct pt_regs *regs)
 {
-	int reg_data = FIELD_GET(EX_DATA_REG_DATA, ex->type);
-	int reg_addr = FIELD_GET(EX_DATA_REG_ADDR, ex->type);
+	int reg_data = FIELD_GET(EX_DATA_REG_DATA, ex->data);
+	int reg_addr = FIELD_GET(EX_DATA_REG_ADDR, ex->data);
 	unsigned long data, addr, offset;
 
 	addr = pt_regs_read_reg(regs, reg_addr);
-- 
2.35.0.rc0.227.g00780c9af4-goog




More information about the linux-arm-kernel mailing list