[PATCH] D47071: [docs] Scudo documentation minor update

Kostya Kortchinsky via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri May 18 10:06:25 PDT 2018


This revision was automatically updated to reflect the committed changes.
Closed by commit rL332736: [docs] Scudo documentation minor update (authored by cryptoad, committed by ).

Repository:
  rL LLVM

https://reviews.llvm.org/D47071

Files:
  llvm/trunk/docs/ScudoHardenedAllocator.rst


Index: llvm/trunk/docs/ScudoHardenedAllocator.rst
===================================================================
--- llvm/trunk/docs/ScudoHardenedAllocator.rst
+++ llvm/trunk/docs/ScudoHardenedAllocator.rst
@@ -18,7 +18,8 @@
 - i386 (& i686) (32-bit);
 - x86_64 (64-bit);
 - armhf (32-bit);
-- AArch64 (64-bit).
+- AArch64 (64-bit);
+- MIPS (32-bit & 64-bit).
 
 The name "Scudo" has been retained from the initial implementation (Escudo
 meaning Shield in Spanish and Portuguese).
@@ -87,7 +88,7 @@
 ----------
 It is important for the allocator to not make use of fixed addresses. We use
 the dynamic base option for the SizeClassAllocator, allowing us to benefit
-from the randomness of mmap.
+from the randomness of the system memory mapping functions.
 
 Usage
 =====
@@ -111,14 +112,14 @@
 
   cd $LLVM/projects/compiler-rt/lib
   clang++ -fPIC -std=c++11 -msse4.2 -O2 -I. scudo/*.cpp \
-    $(\ls sanitizer_common/*.{cc,S} | grep -v "sanitizer_termination\|sanitizer_common_nolibc") \
-    -shared -o scudo-allocator.so -pthread
+    $(\ls sanitizer_common/*.{cc,S} | grep -v "sanitizer_termination\|sanitizer_common_nolibc\|sancov_\|sanitizer_unwind\|sanitizer_symbol") \
+    -shared -o libscudo.so -pthread
 
 and then use it with existing binaries as follows:
 
 .. code::
 
-  LD_PRELOAD=`pwd`/scudo-allocator.so ./a.out
+  LD_PRELOAD=`pwd`/libscudo.so ./a.out
 
 Clang
 -----
@@ -130,15 +131,20 @@
 
 Options
 -------
-Several aspects of the allocator can be configured through the following ways:
+Several aspects of the allocator can be configured on a per process basis
+through the following ways:
+
+- at compile time, by defining ``SCUDO_DEFAULT_OPTIONS`` to the options string
+  you want set by default;
 
 - by defining a ``__scudo_default_options`` function in one's program that
   returns the options string to be parsed. Said function must have the following
-  prototype: ``extern "C" const char* __scudo_default_options(void)``.
+  prototype: ``extern "C" const char* __scudo_default_options(void)``, with a
+  default visibility. This will override the compile time define;
 
 - through the environment variable SCUDO_OPTIONS, containing the options string
   to be parsed. Options defined this way will override any definition made
-  through ``__scudo_default_options``;
+  through ``__scudo_default_options``.
 
 The options string follows a syntax similar to ASan, where distinct options
 can be assigned in the same string, separated by colons.
@@ -167,15 +173,19 @@
 |                             |                |                | the actual deallocation of chunks. Lower value |
 |                             |                |                | may reduce memory usage but decrease the       |
 |                             |                |                | effectiveness of the mitigation; a negative    |
-|                             |                |                | value will fallback to the defaults.           |
+|                             |                |                | value will fallback to the defaults. Setting   |
+|                             |                |                | *both* this and ThreadLocalQuarantineSizeKb to |
+|                             |                |                | zero will disable the quarantine entirely.     |
 +-----------------------------+----------------+----------------+------------------------------------------------+
 | QuarantineChunksUpToSize    | 2048           | 512            | Size (in bytes) up to which chunks can be      |
 |                             |                |                | quarantined.                                   |
 +-----------------------------+----------------+----------------+------------------------------------------------+
 | ThreadLocalQuarantineSizeKb | 1024           | 256            | The size (in Kb) of per-thread cache use to    |
 |                             |                |                | offload the global quarantine. Lower value may |
 |                             |                |                | reduce memory usage but might increase         |
-|                             |                |                | contention on the global quarantine.           |
+|                             |                |                | contention on the global quarantine. Setting   |
+|                             |                |                | *both* this and QuarantineSizeKb to zero will  |
+|                             |                |                | disable the quarantine entirely.               |
 +-----------------------------+----------------+----------------+------------------------------------------------+
 | DeallocationTypeMismatch    | true           | true           | Whether or not we report errors on             |
 |                             |                |                | malloc/delete, new/free, new/delete[], etc.    |
@@ -188,7 +198,6 @@
 +-----------------------------+----------------+----------------+------------------------------------------------+
 
 Allocator related common Sanitizer options can also be passed through Scudo
-options, such as ``allocator_may_return_null``. A detailed list including those
-can be found here:
+options, such as ``allocator_may_return_null`` or ``abort_on_error``. A detailed
+list including those can be found here:
 https://github.com/google/sanitizers/wiki/SanitizerCommonFlags.
-


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D47071.147545.patch
Type: text/x-patch
Size: 5448 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180518/12d9caab/attachment.bin>


More information about the llvm-commits mailing list