Commit Graph

7 Commits

Author SHA1 Message Date
David Carlier 9fdbc7af5e [Docs] Update supported oses for safestack, ubsan, asan, tsan and msan
Adding oses others than Linux.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@337926 91177308-0d34-0410-b5e6-96231b3b80d8
2018-07-25 13:55:06 +00:00
Vlad Tsyrklevich 916476d8b9 SafeStack: Add builtins to read unsafe stack top/bottom
Summary:
Introduce built-ins to read the unsafe stack top and bottom. The unsafe
stack top is required to implement garbage collection scanning for
Oilpan. Currently there is already a built-in 'get_unsafe_stack_start'
to read the bottom of the unsafe stack, but I chose to duplicate this
API because 'start' is ambiguous (e.g. Oilpan uses WTF::GetStackStart to
read the safe stack top.)

Reviewers: pcc

Reviewed By: pcc

Subscribers: llvm-commits, kcc

Differential Revision: https://reviews.llvm.org/D49152

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@337037 91177308-0d34-0410-b5e6-96231b3b80d8
2018-07-13 19:48:35 +00:00
Peter Collingbourne e8a97b24a3 docs: Document how safestack handles setjmp and exceptions.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@270634 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-24 23:38:02 +00:00
Peter Collingbourne 454d8618eb docs: Fix bad link in SafeStack.rst.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@240696 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-25 21:02:17 +00:00
Aaron Ballman f30899265a Silencing some Sphinx warnings about duplicate explicit target names.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@240536 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-24 12:11:04 +00:00
Peter Collingbourne e6b8a09d43 SafeStack documentation improvements
This patch makes the following improvements to the SafeStack documentation:

Explicitly states the security guarantees of the SafeStack
Clarifies which of the security guarantees are probabilistic
Re-orders security limitations to put the most severe ones first
Explains how `__attribute__((no_sanitize("safe-stack")))` works and how to use it safely
Explains that SafeStack should be combined with a forward-edge protection mechanism, such as CPI, IFCC or others
Multiple readability and stylistic improvements

Patch by Volodymyr Kuznetsov!

Differential Revision: http://reviews.llvm.org/D10598

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@240472 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-23 22:24:45 +00:00
Peter Collingbourne 4d2986d891 Protection against stack-based memory corruption errors using SafeStack: Clang command line option and function attribute
This patch adds the -fsanitize=safe-stack command line argument for clang,
which enables the Safe Stack protection (see http://reviews.llvm.org/D6094
for the detailed description of the Safe Stack).

This patch is our implementation of the safe stack on top of Clang. The
patches make the following changes:

- Add -fsanitize=safe-stack and -fno-sanitize=safe-stack options to clang
  to control safe stack usage (the safe stack is disabled by default).

- Add __attribute__((no_sanitize("safe-stack"))) attribute to clang that can be
  used to disable the safe stack for individual functions even when enabled
  globally.

Original patch by Volodymyr Kuznetsov and others at the Dependable Systems
Lab at EPFL; updates and upstreaming by myself.

Differential Revision: http://reviews.llvm.org/D6095

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@239762 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-15 21:08:13 +00:00