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

Commit 5fc02e8d authored by Michael Karcher's avatar Michael Karcher Committed by Greg Kroah-Hartman
Browse files

sh: Fix validation of system call number



[ Upstream commit 04a8a3d0a73f51c7c2da84f494db7ec1df230e69 ]

The slow path for traced system call entries accessed a wrong memory
location to get the number of the maximum allowed system call number.
Renumber the numbered "local" label for the correct location to avoid
collisions with actual local labels.

Signed-off-by: default avatarMichael Karcher <kernel@mkarcher.dialup.fu-berlin.de>
Tested-by: default avatarJohn Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
Fixes: f3a83088 ("sh: Add a few missing irqflags tracing markers.")
Signed-off-by: default avatarRich Felker <dalias@libc.org>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent 2f267499
Loading
Loading
Loading
Loading
+3 −3
Original line number Original line Diff line number Diff line
@@ -199,7 +199,7 @@ syscall_trace_entry:
	mov.l	@(OFF_R7,r15), r7   ! arg3
	mov.l	@(OFF_R7,r15), r7   ! arg3
	mov.l	@(OFF_R3,r15), r3   ! syscall_nr
	mov.l	@(OFF_R3,r15), r3   ! syscall_nr
	!
	!
	mov.l	2f, r10			! Number of syscalls
	mov.l	6f, r10			! Number of syscalls
	cmp/hs	r10, r3
	cmp/hs	r10, r3
	bf	syscall_call
	bf	syscall_call
	mov	#-ENOSYS, r0
	mov	#-ENOSYS, r0
@@ -353,7 +353,7 @@ ENTRY(system_call)
	tst	r9, r8
	tst	r9, r8
	bf	syscall_trace_entry
	bf	syscall_trace_entry
	!
	!
	mov.l	2f, r8			! Number of syscalls
	mov.l	6f, r8			! Number of syscalls
	cmp/hs	r8, r3
	cmp/hs	r8, r3
	bt	syscall_badsys
	bt	syscall_badsys
	!
	!
@@ -392,7 +392,7 @@ syscall_exit:
#if !defined(CONFIG_CPU_SH2)
#if !defined(CONFIG_CPU_SH2)
1:	.long	TRA
1:	.long	TRA
#endif
#endif
2:	.long	NR_syscalls
6:	.long	NR_syscalls
3:	.long	sys_call_table
3:	.long	sys_call_table
7:	.long	do_syscall_trace_enter
7:	.long	do_syscall_trace_enter
8:	.long	do_syscall_trace_leave
8:	.long	do_syscall_trace_leave