diff options
author | Michael Ellerman <mpe@ellerman.id.au> | 2015-07-23 20:21:07 +1000 |
---|---|---|
committer | Michael Ellerman <mpe@ellerman.id.au> | 2015-07-29 11:56:13 +1000 |
commit | e9fbe6863281b942d7eea44c6ccabc30f46ab44f (patch) | |
tree | 396596458f5ebfbbd4905117027920a2dfda3ee7 /tools/perf/scripts/python/export-to-postgresql.py | |
parent | 1cb9839b73e7f2b006a1cc9452c30f15ff8b1748 (diff) |
powerpc: Change syscall_get_nr() to return int
The documentation for syscall_get_nr() in asm-generic says:
Note this returns int even on 64-bit machines. Only 32 bits of
system call number can be meaningful. If the actual arch value
is 64 bits, this truncates to 32 bits so 0xffffffff means -1.
However our implementation was never updated to reflect this.
Generally it's not important, but there is once case where it matters.
For seccomp filter with SECCOMP_RET_TRACE, the tracer will set
regs->gpr[0] to -1 to reject the syscall. When the task is a compat
task, this means we end up with 0xffffffff in r0 because ptrace will
zero extend the 32-bit value.
If syscall_get_nr() returns an unsigned long, then a 64-bit kernel will
see a positive value in r0 and will incorrectly allow the syscall
through seccomp.
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Reviewed-by: Kees Cook <keescook@chromium.org>
Diffstat (limited to 'tools/perf/scripts/python/export-to-postgresql.py')
0 files changed, 0 insertions, 0 deletions