about summary refs log tree commit diff
path: root/src/linux/signalfd.c
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2022-10-07 18:51:36 -0400
committerRich Felker <dalias@aerifal.cx>2022-10-19 14:01:32 -0400
commitd8f35e29d0e35a90f44c04de585470c211afddf9 (patch)
treea00ce19cc0fe9699ab2ad5baef543a2d621ad276 /src/linux/signalfd.c
parent26c76a908b8613ea8a77d40f3bd51b02f984501c (diff)
downloadmusl-d8f35e29d0e35a90f44c04de585470c211afddf9.tar.gz
musl-d8f35e29d0e35a90f44c04de585470c211afddf9.tar.xz
musl-d8f35e29d0e35a90f44c04de585470c211afddf9.zip
fix AS-safety of close when aio is in use and fd map is expanded
the aio operations that lead to calling __aio_get_queue with the
possibility to expand the fd map are not AS-safe, but if they are
interrupted by a signal handler, the signal handler may call close,
which is required to be AS-safe. due to __aio_get_queue taking the
write lock without blocking signals, such a call to close from a
signal handler could deadlock.

change __aio_get_queue to block signals if it needs to obtain a write
lock, and restore when finished.
Diffstat (limited to 'src/linux/signalfd.c')
0 files changed, 0 insertions, 0 deletions