musl - musl - an implementation of the standard library for Linux-based systems

index : musl
musl - an implementation of the standard library for Linux-based systems
summary refs log tree commit diff
path: root/src/signal/sigqueue.c
AgeCommit message (Collapse)AuthorLines
2013年12月12日include cleanups: remove unused headers and add feature test macros Szabolcs Nagy-1/+0
2013年08月31日fix breakage in synccall due to incorrect signal restoration in sigqueue Rich Felker-2/+3
commit 07827d1a82fb33262f686eda959857f0d28cd8fa seems to have introduced this issue. sigqueue is called from the synccall core, at which time, even implementation-internal signals are blocked. however, pthread_sigmask removes the implementation-internal signals from the old mask before returning, so that a process which began life with them blocked will not be able to save a signal mask that has them blocked, possibly causing them to become re-blocked later. however, this was causing sigqueue to unblock the implementation-internal signals during synccall, leading to deadlock.
2011年07月30日fix race condition in sigqueue Rich Felker-2/+8
this race is fundamentally due to linux's bogus requirement that userspace, rather than kernelspace, fill in the siginfo structure. an intervening signal handler that calls fork could cause both the parent and child process to send signals claiming to be from the parent, which could in turn have harmful effects depending on what the recipient does with the signal. we simply block all signals for the interval between getuid and sigqueue syscalls (much like what raise() does already) to prevent the race and make the getuid/sigqueue pair atomic. this will be a non-issue if linux is fixed to validate the siginfo structure or fill it in from kernelspace.
2011年03月20日global cleanup to use the new syscall interface Rich Felker-1/+1
2011年03月10日fix errors in sigqueue (potential information leak, wrong behavior) Rich Felker-5/+7
1. any padding in the siginfo struct was not necessarily zero-filled, so it might have contained private data off the caller's stack. 2. the uid and pid must be filled in from userspace. the previous rsyscall fix broke rsyscalls because the values were always incorrect.
2011年02月12日initial check-in, version 0.5.0 v0.5.0 Rich Felker-0/+14
generated by cgit v1.2.1 (git 2.18.0) at 2025年09月14日 06:56:36 +0000

AltStyle によって変換されたページ (->オリジナル) /