Skip to content

Commit 4b251a1

Browse files
gbaraldigiordano
authored andcommitted
Try keno's tentative TLS fix
(cherry picked from commit 69d4ac0) Make include conditional to macos (cherry picked from commit 6b6465b) (cherry picked from commit 815baab)
1 parent 281b1b1 commit 4b251a1

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

compiler-rt/lib/sanitizer_common/sanitizer_tls_get_addr.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@
1717
#include "sanitizer_flags.h"
1818
#include "sanitizer_platform_interceptors.h"
1919

20+
#if !defined(__APPLE__)
21+
#include <malloc.h>
22+
#endif
23+
2024
namespace __sanitizer {
2125
#if SANITIZER_INTERCEPT_TLS_GET_ADDR
2226

@@ -141,6 +145,8 @@ DTLS::DTV *DTLS_on_tls_get_addr(void *arg_void, void *res,
141145
tls_size = __sanitizer_get_allocated_size(start);
142146
VReport(2, "__tls_get_addr: glibc >=2.25 suspected; tls={%p,0x%zx}\n",
143147
(void *)tls_beg, tls_size);
148+
} else if (uptr size = malloc_usable_size((void *)tls_beg)) {
149+
tls_size = size;
144150
} else {
145151
VReport(2, "__tls_get_addr: Can't guess glibc version\n");
146152
// This may happen inside the DTOR of main thread, so just ignore it.

0 commit comments

Comments
 (0)