Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Wed, 03 Feb 2021 08:16:30 +0100
From: Florian Weimer <fweimer@...hat.com>
To: Dominic Chen <d.c.ddcc@...il.com>
Cc: musl@...ts.openwall.com
Subject: Re: Incorrect thread TID caching

* Dominic Chen:

> From a quick skim of other libc implementations, both bionic and glibc
> don't seem to cache TID, and directly call the gettid system call
> inside raise().

Of course glibc has a TID cache.  It doesn't use it in raise (mostly to
get abort working after vfork), but it's definitely needed in other
places.

If you use the clone system call wrapper in threading (not fork/vfork)
mode, you cannot call any libc functions afterwards, including the
syscall function.  Instead, you have to issue direct system calls.

Thanks,
Florian
-- 
Red Hat GmbH, https://de.redhat.com/ , Registered seat: Grasbrunn,
Commercial register: Amtsgericht Muenchen, HRB 153243,
Managing Directors: Charles Cachera, Brian Klemm, Laurie Krebs, Michael O'Neill

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.