diff options
author | Vitaly Buka <vitalybuka@google.com> | 2024-09-16 11:21:08 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-09-16 11:21:08 -0700 |
commit | 0ea0e3a1b6dcf06674f0b64ecdad1f8e457f1aac (patch) | |
tree | 83c2a2c4d8ff80038f3e2b773abab78f2f993e42 /llvm/lib/Target/WebAssembly/Disassembler/WebAssemblyDisassembler.cpp | |
parent | 8ee685e601617031f50daa3df5e0f1aa38e15108 (diff) | |
download | llvm-0ea0e3a1b6dcf06674f0b64ecdad1f8e457f1aac.zip llvm-0ea0e3a1b6dcf06674f0b64ecdad1f8e457f1aac.tar.gz llvm-0ea0e3a1b6dcf06674f0b64ecdad1f8e457f1aac.tar.bz2 |
[sanitizer] Add CHECK that static TLS info is ready (#108684)
There is possibility of
static_tls_begin is set and static_tls_end is not yet
The test reproduces the case.
Stack trace looks like this:
* `MsanThread::Init`
* `SetThreadStackAndTls`
* `GetThreadStackAndTls`
* `GetThreadStackTopAndBottom`
* `pthread_getattr_np`
* `realloc`
* `__sanitizer_malloc_hook`
* TLS access
* `___interceptor___tls_get_addr`
* `DTLS_on_tls_get_addr`
The issue is that `SetThreadStackAndTls` implementation
stores `tls_begin` before `GetThreadStackTopAndBottom`,
and `tls_end` after. So we have partially initialized
state in `DTLS_on_tls_get_addr`.
Diffstat (limited to 'llvm/lib/Target/WebAssembly/Disassembler/WebAssemblyDisassembler.cpp')
0 files changed, 0 insertions, 0 deletions