summaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorWill Drewry <wad@chromium.org>2012-07-13 12:06:35 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2012-07-13 14:25:55 -0700
commit5651721edec25bf73cee060150e684044eac42dc (patch)
treedc43e7c23455cd61fa2bafad7faffe45b44d6885 /kernel
parentac7d181e323a888015e19e2e4d776095a0433787 (diff)
downloadlinux-5651721edec25bf73cee060150e684044eac42dc.tar.bz2
x86/vsyscall: allow seccomp filter in vsyscall=emulate
If a seccomp filter program is installed, older static binaries and distributions with older libc implementations (glibc 2.13 and earlier) that rely on vsyscall use will be terminated regardless of the filter program policy when executing time, gettimeofday, or getcpu. This is only the case when vsyscall emulation is in use (vsyscall=emulate is the default). This patch emulates system call entry inside a vsyscall=emulate by populating regs->ax and regs->orig_ax with the system call number prior to calling into seccomp such that all seccomp-dependencies function normally. Additionally, system call return behavior is emulated in line with other vsyscall entrypoints for the trace/trap cases. [ v2: fixed ip and sp on SECCOMP_RET_TRAP/TRACE (thanks to luto@mit.edu) ] Reported-and-tested-by: Owen Kibel <qmewlo@gmail.com> Signed-off-by: Will Drewry <wad@chromium.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'kernel')
0 files changed, 0 insertions, 0 deletions