summaryrefslogtreecommitdiff
path: root/compiler-rt
diff options
context:
space:
mode:
authorVitaly Buka <vitalybuka@google.com>2023-05-08 15:24:33 -0700
committerVitaly Buka <vitalybuka@google.com>2023-05-08 16:33:30 -0700
commit6fe46219631fda60e2dc25ca285f30957ba6d3c7 (patch)
tree9a25b92a39d7a358a99507d7e973dfc543de09cd /compiler-rt
parent15593613769f767e78310b08e57b0a93dda6643e (diff)
downloadllvm-6fe46219631fda60e2dc25ca285f30957ba6d3c7.tar.gz
[NFC][HWASAN] Use InternalAlloc for ThreadStartArg
Diffstat (limited to 'compiler-rt')
-rw-r--r--compiler-rt/lib/hwasan/hwasan_interceptors.cpp10
1 files changed, 6 insertions, 4 deletions
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) {