summaryrefslogtreecommitdiff
path: root/arch/mips/include/asm/seccomp.h
diff options
context:
space:
mode:
authorKees Cook <keescook@chromium.org>2020-06-19 12:20:15 -0700
committerKees Cook <keescook@chromium.org>2020-07-10 16:01:52 -0700
commitfe4bfff86ec54773df3db79e8112e3b0f820c799 (patch)
treecee16ed72bbd27d395c6394252ec9a9cd0160862 /arch/mips/include/asm/seccomp.h
parent47e33c05f9f07cac3de833e531bcac9ae052c7ca (diff)
seccomp: Use -1 marker for end of mode 1 syscall list
The terminator for the mode 1 syscalls list was a 0, but that could be a valid syscall number (e.g. x86_64 __NR_read). By luck, __NR_read was listed first and the loop construct would not test it, so there was no bug. However, this is fragile. Replace the terminator with -1 instead, and make the variable name for mode 1 syscall lists more descriptive. Cc: Andy Lutomirski <luto@amacapital.net> Cc: Will Drewry <wad@chromium.org> Signed-off-by: Kees Cook <keescook@chromium.org>
Diffstat (limited to 'arch/mips/include/asm/seccomp.h')
-rw-r--r--arch/mips/include/asm/seccomp.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/mips/include/asm/seccomp.h b/arch/mips/include/asm/seccomp.h
index e383d7e27b93..aa809589a181 100644
--- a/arch/mips/include/asm/seccomp.h
+++ b/arch/mips/include/asm/seccomp.h
@@ -9,12 +9,12 @@ static inline const int *get_compat_mode1_syscalls(void)
static const int syscalls_O32[] = {
__NR_O32_Linux + 3, __NR_O32_Linux + 4,
__NR_O32_Linux + 1, __NR_O32_Linux + 193,
- 0, /* null terminated */
+ -1, /* negative terminated */
};
static const int syscalls_N32[] = {
__NR_N32_Linux + 0, __NR_N32_Linux + 1,
__NR_N32_Linux + 58, __NR_N32_Linux + 211,
- 0, /* null terminated */
+ -1, /* negative terminated */
};
if (IS_ENABLED(CONFIG_MIPS32_O32) && test_thread_flag(TIF_32BIT_REGS))