Andy Lutomirski
e65c6aa108
selftests/x86/ldt_gdt_32: Work around a glibc sigaction() bug
...
commit 65973dd3fd31151823f4b8c289eebbb3fb7e6bc0 upstream.
i386 glibc is buggy and calls the sigaction syscall incorrectly.
This is asymptomatic for normal programs, but it blows up on
programs that do evil things with segmentation. The ldt_gdt
self-test is an example of such an evil program.
This doesn't appear to be a regression -- I think I just got lucky
with the uninitialized memory that glibc threw at the kernel when I
wrote the test.
This hackish fix manually issues sigaction(2) syscalls to undo the
damage. Without the fix, ldt_gdt_32 segfaults; with the fix, it
passes for me.
See: https://sourceware.org/bugzilla/show_bug.cgi?id=21269
Signed-off-by: Andy Lutomirski <luto@kernel.org>
Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Brian Gerst <brgerst@gmail.com>
Cc: Denys Vlasenko <dvlasenk@redhat.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Josh Poimboeuf <jpoimboe@redhat.com>
Cc: Juergen Gross <jgross@suse.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Garnier <thgarnie@google.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/aaab0f9f93c9af25396f01232608c163a760a668.1490218061.git.luto@kernel.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-05-20 14:28:36 +02:00
..
breakpoints
selftests: add missing .gitignore file or entry
2016-02-25 13:16:36 -07:00
capabilities
selftests/capabilities: clean up for Makefile
2015-11-23 13:20:10 -07:00
cpu-hotplug
selftests: create test-specific kconfig fragments
2016-02-25 09:47:52 -07:00
efivarfs
efi: Make efivarfs entries immutable by default
2016-02-10 16:25:52 +00:00
exec
selftests/exec: Makefile is a run-time dependency, add it to the install list
2016-06-15 13:35:55 -06:00
filesystems
selftests: move dnotify_test from Documentation/filesystems
2016-09-20 09:09:00 -06:00
firmware
selftests: create test-specific kconfig fragments
2016-02-25 09:47:52 -07:00
ftrace
ftracetest: Fix hist unsupported result in hist selftests
2016-06-20 09:46:21 -04:00
futex
selftests/futex: Check ANSI terminal color support
2016-10-11 07:38:36 -06:00
ia64
selftests: move ia64 tests from Documentation/ia64
2016-09-20 09:58:12 -06:00
intel_pstate
tools: testing: define the _GNU_SOURCE macro
2016-05-16 09:06:17 -06:00
ipc
selftests: add missing .gitignore file or entry
2016-02-25 13:16:36 -07:00
kcmp
selftests: Set CC using CROSS_COMPILE once in lib.mk
2015-03-19 15:16:51 -06:00
lib
selftests/lib: set printf.sh executable
2016-06-27 13:17:14 -06:00
media_tests
selftests: media_tests add a new video device test
2016-07-26 09:59:30 -06:00
membarrier
membarrier: clean up selftest
2015-09-22 15:09:53 -07:00
memfd
selftests: Make scripts executable
2015-11-03 16:54:57 -07:00
memory-hotplug
selftests: create test-specific kconfig fragments
2016-02-25 09:47:52 -07:00
mount
selftests: create test-specific kconfig fragments
2016-02-25 09:47:52 -07:00
mqueue
selftests: Add missing #include directives
2015-11-03 16:53:53 -07:00
net
selftests: do not require bash to run netsocktests testcase
2017-01-19 20:17:58 +01:00
networking /timestamping
selftests: Move networking/timestamping from Documentation
2016-09-20 09:59:50 -06:00
nsfs
tools/testing: add a test to check nsfs ioctl-s
2016-09-22 19:59:41 -05:00
ntb
ntb_test: Add a selftest script for the NTB subsystem
2016-08-05 10:21:08 -04:00
powerpc
selftest/powerpc: Wrong PMC initialized in pmc56_overflow test
2017-01-26 08:24:45 +01:00
prctl
selftests: move prctl tests from Documentation/prctl
2016-09-20 09:09:09 -06:00
pstore
selftests: create test-specific kconfig fragments
2016-02-25 09:47:52 -07:00
ptp
selftests: move ptp tests from Documentation/ptp
2016-09-20 09:54:38 -06:00
ptrace
add ptrace/.gitignore
2016-01-07 13:38:11 -07:00
rcutorture
torture: Inflict default jitter
2016-06-14 16:03:32 -07:00
seccomp
seccomp: add tests for ptrace hole
2016-06-14 10:54:38 -07:00
sigaltstack
signals/sigaltstack: Change SS_AUTODISARM to (1U << 31)
2016-05-04 08:34:14 +02:00
size
selftests: Set CC using CROSS_COMPILE once in lib.mk
2015-03-19 15:16:51 -06:00
static_keys
selftests: create test-specific kconfig fragments
2016-02-25 09:47:52 -07:00
sysctl
selftests: Add install target
2015-03-13 15:21:56 -06:00
timers
selftests/timers: Add missing error code assignment before test
2016-09-20 09:00:28 -06:00
user
selftests: create test-specific kconfig fragments
2016-02-25 09:47:52 -07:00
vDSO
selftests: move vDSO tests from Documentation/vDSO
2016-09-20 09:58:04 -06:00
vm
selftests: expanding more mlock selftest
2016-10-07 18:46:28 -07:00
watchdog
selftests: move watchdog tests from Documentation/watchdog
2016-09-20 09:58:34 -06:00
x86
selftests/x86/ldt_gdt_32: Work around a glibc sigaction() bug
2017-05-20 14:28:36 +02:00
zram
selftests/zram: replace ZRAM_LZ4_COMPRESS
2016-09-20 09:00:01 -06:00
gen_kselftest_tar.sh
selftests: Add tool to generate kselftest tar archive
2015-03-24 08:43:19 -06:00
kselftest.h
kselftest: Add exit code defines
2015-05-26 15:58:08 -06:00
kselftest_install.sh
selftests: Add kselftest install tool
2015-03-24 08:43:05 -06:00
lib.mk
selftests: change install command to rsync
2015-09-14 16:43:51 -06:00
Makefile
selftests: do not require bash for the generated test
2017-01-19 20:17:58 +01:00