[PATCH 2/2] stdlib: Make abort AS-safe (BZ 26275)
Adhemerval Zanella Netto
adhemerval.zanella@linaro.org
Wed Aug 2 13:08:36 GMT 2023
On 02/08/23 09:38, Florian Weimer wrote:
> * Adhemerval Zanella via Libc-alpha:
>
>> diff --git a/nptl/pthread_kill.c b/nptl/pthread_kill.c
>> index 44e45a4e23..e3364fb5d1 100644
>> --- a/nptl/pthread_kill.c
>> +++ b/nptl/pthread_kill.c
>> @@ -69,6 +69,17 @@ __pthread_kill_implementation (pthread_t threadid, int signo, int no_tid)
>> return ret;
>> }
>>
>> +/* Send the signal SIGNO to the caller. Used by abort and called where the
>> + signals are being already blocked and there is no need to synchronize with
>> + exit_lock. */
>> +int
>> +__pthread_raise_internal (int signo)
>> +{
>> + struct pthread *pd = THREAD_SELF;
>> + int ret = INTERNAL_SYSCALL_CALL (tgkill, __getpid (), pd->tid, signo);
>> + return INTERNAL_SYSCALL_ERROR_P (ret) ? INTERNAL_SYSCALL_ERRNO (ret) : 0;
>> +}
>
> This needs to use gettid (the system call) so that it works after vfork,
> which may have an incorrect pd->tid.
>
> There should be a comment to this effect in pthread_kill implementation
> already.
>
Ack.
More information about the Libc-alpha
mailing list