forked from OSchip/llvm-project
e78b64df98
This patch does a few cleanup things: 1. The non-standalone scudo has a problem where GWP-ASan allocations may not meet alignment requirements where Scudo was requested to have alignment >= 16. Use the new GWP-ASan API to fix this. 2. The standalone variant loses some debugging information inside of GWP-ASan because we ask GWP-ASan to allocate an aligned size in the frontend. This means reports end up with 'UaF on a 16-byte allocation' for a 1-byte allocation with 16-byte alignment. Also use the new API to fix this. 3. Add post-alloc hooks for GWP-ASan intercepted allocations, and add stats tracking for GWP-ASan allocations. 4. Add a small test that checks the alignment of the frontend allocator, so that it can be used under GWP-ASan torture mode. 5. Add GWP-ASan torture mode as a testing configuration to catch these regressions. Depends on D94830, D95889. Reviewed By: cryptoad Differential Revision: https://reviews.llvm.org/D95884 |
||
---|---|---|
.. | ||
standalone | ||
CMakeLists.txt | ||
scudo_allocator.cpp | ||
scudo_allocator.h | ||
scudo_allocator_combined.h | ||
scudo_allocator_secondary.h | ||
scudo_crc32.cpp | ||
scudo_crc32.h | ||
scudo_errors.cpp | ||
scudo_errors.h | ||
scudo_flags.cpp | ||
scudo_flags.h | ||
scudo_flags.inc | ||
scudo_interface_internal.h | ||
scudo_malloc.cpp | ||
scudo_new_delete.cpp | ||
scudo_platform.h | ||
scudo_termination.cpp | ||
scudo_tsd.h | ||
scudo_tsd_exclusive.cpp | ||
scudo_tsd_exclusive.inc | ||
scudo_tsd_shared.cpp | ||
scudo_tsd_shared.inc | ||
scudo_utils.cpp | ||
scudo_utils.h |