[PATCH] pthread_getcpuclockid: Add descriptive comment to smoke test

Siddhesh Poyarekar siddhesh@sourceware.org
Thu Nov 28 13:19:46 GMT 2024


On 2024-11-28 07:00, Florian Weimer wrote:
> * Siddhesh Poyarekar:
> 
>> +/* The input thread descriptor to pthread_getcpuclockid needs to be valid when
>> +   the function is called.  For the purposes of this test, this means that the
>> +   thread should not be detached, have exited, but not joined.  There is also a
>> +   tiny window where the TCB has been allocated but the target thread itself
>> +   not created, where pthread_getcpuclockid could return ESRCH, but it's not
>> +   possible to tap into that window to reliably test it.  It's not necessary
>> +   anyway, since the window this test exploits is good enough to complete
>> +   coverage for pthread_getcpuclockid alongside tst-clock2.  */
> 
> The kernel stores the TID to the TCB before the system call returns
> (according to the clone manual page).
> 
> So the only race is for thread exit, not thread creation, and the
> comment is misleading.

I was thinking of a situation where the thread descriptor points to a 
TCB and the syscall has not been invoked yet; this would be exploitable 
when the thread descriptor itself is in memory shared with another 
thread.  But now that I'm saying it out loud, it doesn't sound like 
behaviour that ought to be relied upon, just something that the 
internals currently happen to allow.

How about this then:

/* The input thread descriptor to pthread_getcpuclockid needs to be 
valid when
    the function is called.  For the purposes of this test, this means 
that the
    thread should not be detached, have exited, but not joined.  This 
should be
    good enough to complete coverage for pthread_getcpuclockid alongside
    tst-clock2.  */

Thanks,
Sid


More information about the Libc-alpha mailing list