diff options
author | Mariusz Borsa <wrotki@msn.com> | 2023-12-15 17:33:54 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-12-15 17:33:54 -0800 |
commit | 7e4ae28645ef3ad36f1daec3fe3edc901f561bc7 (patch) | |
tree | 0db7ab436cde4109f346ce6afed822aa717e57ef /lldb/source/Commands/CommandObjectCommands.cpp | |
parent | 9950bb994461d6dc67ac9b33e48f549edcb44739 (diff) | |
download | llvm-7e4ae28645ef3ad36f1daec3fe3edc901f561bc7.zip llvm-7e4ae28645ef3ad36f1daec3fe3edc901f561bc7.tar.gz llvm-7e4ae28645ef3ad36f1daec3fe3edc901f561bc7.tar.bz2 |
[Sanitizers] Don't inline unpoisoning of small stacks when inlining disabled (#75555)
When ASan.MaxInlinePoisoningSize == 0 , it means that no shadow memory
operations should be made via inlined instrumentation code,
but only via calls to shadow setting functions. This change fixes one
violation of this, which happened when the function allocas count
was small, i.e. less than 5 - in the code modifying the shadow just
before ret instruction.
We now explicitly check ASan.MaxInlinePoisoningSize , and if it's 0 then
we disallow inlining. It is required for the instrumentation
emitting code suitable for handling by ABI implementation.
rdar://119513720
Co-authored-by: Mariusz Borsa <m_borsa@apple.com>
Diffstat (limited to 'lldb/source/Commands/CommandObjectCommands.cpp')
0 files changed, 0 insertions, 0 deletions