mirror of
https://git.musl-libc.org/git/musl
synced 2025-02-25 06:34:31 +03:00

if gcc decided to move this across a conditional that checks validity of the thread register, an invalid thread-register-based read could be performed and raise sigsegv.
10 lines
196 B
C
10 lines
196 B
C
static inline struct pthread *__pthread_self()
|
|
{
|
|
struct pthread *self;
|
|
__asm__ __volatile__ ("movq %%fs:0,%0" : "=r" (self) );
|
|
return self;
|
|
}
|
|
|
|
#define CANCEL_REG_SP 15
|
|
#define CANCEL_REG_IP 16
|