llvm-project/compiler-rt
Kostya Kortchinsky a9d5f8989d [scudo][standalone] Fix a race in the secondary release
Summary:
I tried to move the `madvise` calls outside of one of the secondary
mutexes, but this backfired. There is situation when a low release
interval is set combined with secondary pressure that leads to a race:
a thread can get a block from the cache, while another thread is
`madvise`'ing that block, resulting in a null header.

I changed the secondary race test so that this situation would be
triggered, and moved the release into the cache mutex scope.

Reviewers: cferris, pcc, eugenis, hctim, morehouse

Subscribers: jfb, #sanitizers, llvm-commits

Tags: #sanitizers, #llvm

Differential Revision: https://reviews.llvm.org/D74072
2020-02-05 11:02:51 -08:00
..
cmake [CMake][compiler-rt] Replace Windows backslashes with CMake ones 2020-02-04 22:35:31 -08:00
docs
include [sanitizer] Add missing declarations for sigaltstack syscall wrappers. 2020-02-04 13:10:43 -08:00
lib [scudo][standalone] Fix a race in the secondary release 2020-02-05 11:02:51 -08:00
test [sanitizer] Add missing declarations for sigaltstack syscall wrappers. 2020-02-04 13:10:43 -08:00
tools Add GWP-ASan fuzz target to compiler-rt/tools. 2019-08-27 18:28:07 +00:00
unittests [Scudo] [GWP-ASan] Add GWP-ASan to Scudo Standalone. 2019-12-13 09:09:41 -08:00
utils [compiler-rt] Fix build on NetBSD 9.99.44 2020-01-31 14:57:20 +01:00
www [www] Change URLs to HTTPS. 2019-10-24 13:25:15 -07:00
.arcconfig [compiler-rt] Set up .arcconfig to point to new Diffusion CRT repository 2017-12-06 20:55:32 +00:00
.gitignore
CMakeLists.txt [CMake] Enable -qfuncsect when building with IBM XL 2020-01-15 10:45:50 -05:00
CODE_OWNERS.TXT
CREDITS.TXT
LICENSE.TXT Fix typos throughout the license files that somehow I and my reviewers 2019-01-21 09:52:34 +00:00
README.txt

README.txt

Compiler-RT
================================

This directory and its subdirectories contain source code for the compiler
support routines.

Compiler-RT is open source software. You may freely distribute it under the
terms of the license agreement found in LICENSE.txt.

================================