musl/src
Rich Felker 99b8a25e94 overhaul implementation-internal signal protections
the new approach relies on the fact that the only ways to create
sigset_t objects without invoking UB are to use the sig*set()
functions, or from the masks returned by sigprocmask, sigaction, etc.
or in the ucontext_t argument to a signal handler. thus, as long as
sigfillset and sigaddset avoid adding the "protected" signals, there
is no way the application will ever obtain a sigset_t including these
bits, and thus no need to add the overhead of checking/clearing them
when sigprocmask or sigaction is called.

note that the old code actually *failed* to remove the bits from
sa_mask when sigaction was called.

the new implementations are also significantly smaller, simpler, and
faster due to ignoring the useless "GNU HURD signals" 65-1024, which
are not used and, if there's any sanity in the world, never will be
used.
2011-05-07 23:23:58 -04:00
..
conf better fix sysconf pthread stack min 2011-04-08 12:16:24 -04:00
ctype more header fixes, minor warning fix 2011-02-14 19:33:11 -05:00
dirent avoid fd leak if opendir is cancelled when calloc has failed 2011-04-18 21:22:14 -04:00
env add startup abi functions, dummy for now. eventually needed for c++ support. 2011-04-06 16:40:19 -04:00
errno change errno to static linkage (improves PIC code generation) 2011-02-21 23:00:52 -05:00
exit consistency: change all remaining syscalls to use SYS_ rather than __NR_ prefix 2011-04-06 20:32:53 -04:00
fcntl add syscall wrappers for posix_fadvise, posix_fallocate 2011-04-20 15:20:22 -04:00
internal overhaul implementation-internal signal protections 2011-05-07 23:23:58 -04:00
ipc overhaul pthread cancellation 2011-04-17 11:43:03 -04:00
ldso various changes in preparation for dynamic linking support 2011-02-24 16:37:21 -05:00
linux fix initgroups (uninitialized count passed to getgrouplist) 2011-04-20 19:15:27 -04:00
locale fix breakage due to converting a return type to size_t in iconv... 2011-04-07 16:10:44 -04:00
malloc namespace fixes for sys/mman.h 2011-04-20 15:55:58 -04:00
math Port musl to x86-64. One giant commit! 2011-02-15 07:32:09 -05:00
misc properly create new session/controlling terminal in forkpty 2011-04-20 21:01:42 -04:00
mman fix missing include in posix_madvise.c (compile error) 2011-04-20 15:36:15 -04:00
multibyte fix all implicit conversion between signed/unsigned pointers 2011-03-25 16:34:03 -04:00
network fix bug in ipv6 parsing that prevented parsing a lone "::" 2011-04-25 17:49:21 -04:00
passwd shadow password fixes: empty fields should read as -1 not 0 2011-04-20 19:05:59 -04:00
prng initial check-in, version 0.5.0 2011-02-12 00:22:29 -05:00
process correct variadic prototypes for execl* family 2011-04-27 16:06:33 -04:00
regex fix bug in TRE found by clang (typo && instead of &) 2011-04-07 23:13:47 -04:00
select overhaul pthread cancellation 2011-04-17 11:43:03 -04:00
setjmp Port musl to x86-64. One giant commit! 2011-02-15 07:32:09 -05:00
signal overhaul implementation-internal signal protections 2011-05-07 23:23:58 -04:00
stat fix (hopefully) statvfs breakage on x86_64 that resulted from fixing i386... 2011-04-05 23:58:36 -04:00
stdio reduce some ridiculously large spin counts 2011-05-06 21:45:48 -04:00
stdlib avoid crashing when nel==0 is passed to qsort 2011-04-29 11:14:55 -04:00
string function signature fix: add const qualifier to mempcpy src arg 2011-04-26 12:28:41 -04:00
stub various legacy and linux-specific stuff 2011-03-18 21:52:26 -04:00
temp make mktemp match the historic behavior, and update functions that use it 2011-02-19 09:40:07 -05:00
termios overhaul pthread cancellation 2011-04-17 11:43:03 -04:00
thread overhaul implementation-internal signal protections 2011-05-07 23:23:58 -04:00
time overhaul implementation-internal signal protections 2011-05-07 23:23:58 -04:00
unistd omit errno update path for syscalls that cannot fail 2011-04-21 21:52:41 -04:00