[PATCH] [BZ #19329] Fix race during concurrent dlopen and pthread_create
Szabolcs Nagy
nsz@port70.net
Tue Dec 29 20:53:00 GMT 2015
* Florian Weimer <fweimer@redhat.com> [2015-12-29 19:48:57 +0100]:
> On 12/29/2015 11:38 AM, Ilya Palachev wrote:
> > + listp->slotinfo[idx].gen = atomic_increment_val(&GL(dl_tls_generation));
>
> Space after atomic_increment_val. And I think it's a legacy macro, not
> one of the new C11 macros. It's surprising that atomic access is not
> needed in any other places. Why is this so?
>
using atomic read during pthread_create is missing from the patch
as well as the use of atomics for slotinfo[idx] members.
a correct fix is non-trivial and will add several atomic memory ops.
> Does the counter now need overflow protection on 32-bit architectures
> because it is incremented more often?
it already had overflow protection, the patch broke that though
More information about the Libc-alpha
mailing list