linux/tools/testing/selftests
Andy Lutomirski e65c6aa108 selftests/x86/ldt_gdt_32: Work around a glibc sigaction() bug
commit 65973dd3fd 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>
History 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