diff --git a/src/thread/pthread_kill.c b/src/thread/pthread_kill.c index f090342064d867de24b9287694b02927afe2bd0f..0a139231caae5afad1ae11b54f659fd64fecb07f 100644 --- a/src/thread/pthread_kill.c +++ b/src/thread/pthread_kill.c @@ -4,7 +4,8 @@ int pthread_kill(pthread_t t, int sig) { int r; LOCK(t->killlock); - r = t->dead ? ESRCH : -__syscall(SYS_tkill, t->tid, sig); + r = t->dead ? (sig+0U >= _NSIG ? EINVAL : 0) + : -__syscall(SYS_tkill, t->tid, sig); UNLOCK(t->killlock); return r; }