Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9e915176 authored by Al Viro's avatar Al Viro Committed by Greg Kroah-Hartman
Browse files

nios2: traced syscall does need to check the syscall number



commit 25ba820ef36bdbaf9884adeac69b6e1821a7df76 upstream.

all checks done before letting the tracer modify the register
state are worthless...

Fixes: 82ed08dd ("nios2: Exception handling")
Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
Signed-off-by: default avatarDinh Nguyen <dinguyen@kernel.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 73c08837
Loading
Loading
Loading
Loading
+8 −3
Original line number Diff line number Diff line
@@ -255,9 +255,9 @@ traced_system_call:
	ldw	r6, PT_R6(sp)
	ldw	r7, PT_R7(sp)

	/* Fetch the syscall function, we don't need to check the boundaries
	 * since this is already done.
	 */
	/* Fetch the syscall function. */
	movui	r1, __NR_syscalls
	bgeu	r2, r1, traced_invsyscall
	slli	r1, r2, 2
	movhi	r11,%hiadj(sys_call_table)
	add	r1, r1, r11
@@ -287,6 +287,11 @@ end_translate_rc_and_ret2:
	RESTORE_SWITCH_STACK
	br	ret_from_exception

	/* If the syscall number was invalid return ENOSYS */
traced_invsyscall:
	movi	r2, -ENOSYS
	br	translate_rc_and_ret2

Luser_return:
	GET_THREAD_INFO	r11			/* get thread_info pointer */
	ldw	r10, TI_FLAGS(r11)		/* get thread_info->flags */