hwasan: Move stack ring buffer initialization before InitStackAndTls.
D104248 moved the call to GetThreadStackAndTls to before the initialization of the ring buffer TLS slot. As a result, if libc is instrumented we crash in pthread_getattr_np which is called from __sanitizer::GetThreadStackTopAndBottom. Fix the problem by moving the stack ring buffer initialization before the call to InitStackAndTls. Differential Revision: https://reviews.llvm.org/D108184
This commit is contained in:
parent
dfea011a37
commit
affb132ab8
|
@ -45,13 +45,13 @@ void Thread::Init(uptr stack_buffer_start, uptr stack_buffer_size,
|
|||
if (auto sz = flags()->heap_history_size)
|
||||
heap_allocations_ = HeapAllocationsRingBuffer::New(sz);
|
||||
|
||||
InitStackAndTls(state);
|
||||
#if !SANITIZER_FUCHSIA
|
||||
// Do not initialize the stack ring buffer just yet on Fuchsia. Threads will
|
||||
// be initialized before we enter the thread itself, so we will instead call
|
||||
// this later.
|
||||
InitStackRingBuffer(stack_buffer_start, stack_buffer_size);
|
||||
#endif
|
||||
InitStackAndTls(state);
|
||||
}
|
||||
|
||||
void Thread::InitStackRingBuffer(uptr stack_buffer_start,
|
||||
|
|
Loading…
Reference in New Issue