summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/GCRootLowering.cpp
diff options
context:
space:
mode:
authorMarcin Koscielnicki <koriakin@0x04.net>2016-04-27 17:42:00 +0000
committerMarcin Koscielnicki <koriakin@0x04.net>2016-04-27 17:42:00 +0000
commitb7b5ac60c470e42ef53dd201a5cfd35095f8a4f7 (patch)
tree84da65f7d412e59daf253d04546a8e4b9ab8846d /llvm/lib/CodeGen/GCRootLowering.cpp
parentb17327d7b6c0077ff176f138f283a04867fdf707 (diff)
downloadbcm5719-llvm-b7b5ac60c470e42ef53dd201a5cfd35095f8a4f7.tar.gz
bcm5719-llvm-b7b5ac60c470e42ef53dd201a5cfd35095f8a4f7.zip
[sanitizer] [SystemZ] Abort if the kernel might be vulnerable to CVE-2016-2143.
In short, CVE-2016-2143 will crash the machine if a process uses both >4TB virtual addresses and fork(). ASan, TSan, and MSan will, by necessity, map a sizable chunk of virtual address space, which is much larger than 4TB. Even worse, sanitizers will always use fork() for llvm-symbolizer when a bug is detected. Disable all three by aborting on process initialization if the running kernel version is not known to contain a fix. Unfortunately, there's no reliable way to detect the fix without crashing the kernel. So, we rely on whitelisting - I've included a list of upstream kernel versions that will work. In case someone uses a distribution kernel or applied the fix themselves, an override switch is also included. Differential Revision: http://reviews.llvm.org/D19576 llvm-svn: 267747
Diffstat (limited to 'llvm/lib/CodeGen/GCRootLowering.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud