glibc/rt
Adhemerval Zanella 27d83441a2 Block all signals on timer_create thread (BZ#10815)
The behavior of the signal mask on threads created by timer_create
for SIGEV_THREAD timers are implementation-defined and glibc explicit
unblocks all signals before calling the user-defined function.

This behavior, although not incorrect standard-wise, opens a race if a
program using a blocked rt-signal plus sigwaitinfo (and without an
installed signal handler for the rt-signal) receives a signal while
executing the used-defined function for SIGEV_THREAD.

A better alternative discussed in bug report is to rather block all
signals (besides the internal ones not available to application
usage).

This patch fixes this issue by only unblocking SIGSETXID (used on
set*uid function) and SIGCANCEL (used for thread cancellation).

Checked on x86_64-linux-gnu and i686-linux-gnu.
2020-02-19 13:46:31 -03:00
..
bits Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
aio_cancel.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
aio_error.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
aio_fsync.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
aio_misc.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
aio_notify.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
aio_read64.c * elf/cache.c: Use <> rather than "" #includes. 2005-12-21 22:16:34 +00:00
aio_read.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
aio_return.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
aio_sigqueue.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
aio_suspend.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
aio_write64.c * elf/cache.c: Use <> rather than "" #includes. 2005-12-21 22:16:34 +00:00
aio_write.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
aio.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
Depend hurd: Add hurd thread library 2018-04-02 01:44:14 +02:00
lio_listio64.c Moved to csu/errno-loc.c. 2005-12-14 15:06:39 +00:00
lio_listio.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
Makefile Block all signals on timer_create thread (BZ#10815) 2020-02-19 13:46:31 -03:00
mq_close.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
mq_getattr.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
mq_notify.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
mq_open.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
mq_receive.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
mq_send.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
mq_setattr.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
mq_timedreceive.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
mq_timedsend.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
mq_unlink.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
mqueue.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
shm_open.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
shm_unlink.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
timer_create.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
timer_delete.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
timer_getoverr.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
timer_gettime.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
timer_settime.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-aio2.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-aio3.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-aio4.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-aio5.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-aio6.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-aio7.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-aio8.c (do_test): aio_offset should be initialized, too. 2006-01-05 00:26:42 +00:00
tst-aio9.c Don't reduce test timeout to less than default 2018-10-17 09:34:13 +02:00
tst-aio10.c Don't reduce test timeout to less than default 2018-10-17 09:34:13 +02:00
tst-aio64.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-aio.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-cpuclock2.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-cputimer1.c * rt/tst-cpuclock1.c: New file. 2005-04-27 08:03:47 +00:00
tst-cputimer2.c * rt/tst-cpuclock1.c: New file. 2005-04-27 08:03:47 +00:00
tst-cputimer3.c * rt/tst-cpuclock1.c: New file. 2005-04-27 08:03:47 +00:00
tst-mqueue1.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-mqueue2.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-mqueue3.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-mqueue4.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-mqueue5.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-mqueue6.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-mqueue7.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-mqueue8.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-mqueue9.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-mqueue.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-shm-cancel.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-shm.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-timer2.c Don't set unused field in rt/tst-timer2. 2015-02-06 12:30:38 -08:00
tst-timer3.c
tst-timer4.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-timer5.c 2004-12-07 Roland McGrath <roland@redhat.com> 2004-12-07 20:44:46 +00:00
tst-timer-sigmask.c Block all signals on timer_create thread (BZ#10815) 2020-02-19 13:46:31 -03:00
tst-timer.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
Versions Finish move of clock_* functions to libc. [BZ #24959] 2019-09-04 14:39:38 +02:00