|
|
Message-ID: <0217b8838100175725993b0ed0114ee7@thelig.ht>
Date: Mon, 29 Jun 2020 21:19:08 -0700
From: Hydro Flask <hydroflask@...mail.com>
To: musl@...ts.openwall.com
Subject: Potential deadlock in pthread_kill()
Hello all,
Noticed something while reading some code today. pthread_kill() is
specified by POSIX to be async signal safe but I noticed that in musl's
implementation if a signal occurs while the "killlock" is held and the
signal handler calls pthread_kill() on the same target thread, a
deadlock will occur. Is this intentional?
int pthread_kill(pthread_t t, int sig)
{
int r;
LOCK(t->killlock);
r = t->tid ? -__syscall(SYS_tkill, t->tid, sig)
: (sig+0U >= _NSIG ? EINVAL : 0);
UNLOCK(t->killlock);
return r;
}
Thank you for your attention.
Hydro
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.