[compiler-rt] 6fe4621 - [NFC][HWASAN] Use InternalAlloc for ThreadStartArg
Vitaly Buka via llvm-commits
llvm-commits at lists.llvm.org
Mon May 8 16:33:39 PDT 2023
Author: Vitaly Buka
Date: 2023-05-08T16:33:30-07:00
New Revision: 6fe46219631fda60e2dc25ca285f30957ba6d3c7
URL: https://github.com/llvm/llvm-project/commit/6fe46219631fda60e2dc25ca285f30957ba6d3c7
DIFF: https://github.com/llvm/llvm-project/commit/6fe46219631fda60e2dc25ca285f30957ba6d3c7.diff
LOG: [NFC][HWASAN] Use InternalAlloc for ThreadStartArg
Added:
Modified:
compiler-rt/lib/hwasan/hwasan_interceptors.cpp
Removed:
################################################################################
diff --git a/compiler-rt/lib/hwasan/hwasan_interceptors.cpp b/compiler-rt/lib/hwasan/hwasan_interceptors.cpp
index 3854ad62f41a..096bfe5b1864 100644
--- a/compiler-rt/lib/hwasan/hwasan_interceptors.cpp
+++ b/compiler-rt/lib/hwasan/hwasan_interceptors.cpp
@@ -53,7 +53,7 @@ static void *HwasanThreadStartFunc(void *arg) {
__hwasan_thread_enter();
ThreadStartArg A = *reinterpret_cast<ThreadStartArg *>(arg);
SetSigProcMask(&A.starting_sigset_, nullptr);
- UnmapOrDie(arg, GetPageSizeCached());
+ InternalFree(arg);
return A.callback(A.param);
}
@@ -61,8 +61,7 @@ INTERCEPTOR(int, pthread_create, void *th, void *attr,
void *(*callback)(void *), void *param) {
EnsureMainThreadIDIsCorrect();
ScopedTaggingDisabler tagging_disabler;
- ThreadStartArg *A = reinterpret_cast<ThreadStartArg *>(
- MmapOrDie(GetPageSizeCached(), "pthread_create"));
+ ThreadStartArg *A = (ThreadStartArg *)InternalAlloc(sizeof(ThreadStartArg));
A->callback = callback;
A->param = param;
ScopedBlockSignals block(&A->starting_sigset_);
@@ -70,7 +69,10 @@ INTERCEPTOR(int, pthread_create, void *th, void *attr,
# if CAN_SANITIZE_LEAKS
__lsan::ScopedInterceptorDisabler lsan_disabler;
# endif
- return REAL(pthread_create)(th, attr, &HwasanThreadStartFunc, A);
+ int result = REAL(pthread_create)(th, attr, &HwasanThreadStartFunc, A);
+ if (result != 0)
+ InternalFree(A);
+ return result;
}
INTERCEPTOR(int, pthread_join, void *t, void **arg) {
More information about the llvm-commits
mailing list