parisc: Fix kernel crash with reversed copy_from_user()
Helge Deller
maintainerPATCH 1/1 parisc: Fix kernel crash with reversed copy_from_user()
The kernel module testcase (lib/test_user_copy.c) exhibited a kernel crash on parisc if the parameters for copy_from_user were reversed ("illegal reversed copy_to_user" testcase).
Fix this potential crash by checking the fault handler if the faulting address is in the exception table.
arch/parisc/kernel/traps.c +3 -0
@@ -795,6 +795,9 @@ void notrace handle_interruption(int code, struct pt_regs *regs)if (fault_space ==0 && !faulthandler_disabled ()) { +/* Clean up and return if in exception table. */ +if (fixup_exception (regs)) +return ;pdc_chassis_send_status (PDC_CHASSIS_DIRECT_PANIC );parisc_terminate ("Kernel Fault" , regs, code, fault_address); }