freebsd-skq/lib/libc
Konstantin Belousov 066d836b02 Current pselect(3) is implemented in usermode and thus vulnerable to
well-known race condition, which elimination was the reason for the
function appearance in first place. If sigmask supplied as argument to
pselect() enables a signal, the signal might be delivered before thread
called select(2), causing lost wakeup. Reimplement pselect() in kernel,
making change of sigmask and sleep atomic.

Since signal shall be delivered to the usermode, but sigmask restored,
set TDP_OLDMASK and save old mask in td_oldsigmask. The TDP_OLDMASK
should be cleared by ast() in case signal was not gelivered during
syscall execution.

Reviewed by:	davidxu
Tested by:	pho
MFC after:	1 month
2009-10-27 10:55:34 +00:00
..
amd64 Mark uname(), getdomainname() and setdomainname() with COMPAT_FREEBSD4. 2008-11-09 10:45:13 +00:00
arm Remove unneeded stdlib directories. 2009-06-23 14:11:41 +00:00
compat-43 Use C comments since we now preprocess these files with CPP. 2007-04-29 14:05:22 +00:00
db Consider flag == 0 as the same of flag == R_NEXT. This change will restore 2009-08-24 23:44:07 +00:00
gdtoa Unbreak the build for arm and powerpc. 2008-04-12 14:53:52 +00:00
gen Current pselect(3) is implemented in usermode and thus vulnerable to 2009-10-27 10:55:34 +00:00
gmon Remove .mcount from gmon's Symbol map and add it to the appropriate 2007-05-13 14:16:55 +00:00
i386 Remove hand-written labs/abs implementations. GCC is smart enough. 2009-06-23 09:04:59 +00:00
ia64 Remove unneeded stdlib directories. 2009-06-23 14:11:41 +00:00
include Make openat(2) a cancellation point. 2009-10-11 20:19:45 +00:00
inet Merge the resolver part of BIND 9.4.3 into HEAD. 2008-12-14 19:39:53 +00:00
isc Merge BIND 9.4.1 into main chunk. 2007-06-03 17:20:27 +00:00
locale Modified locale(1) to be able to show the altmon_X fields and the [cxX]_fmt's. 2009-10-05 07:13:15 +00:00
mips Remove unneeded stdlib directories. 2009-06-23 14:11:41 +00:00
nameser This commit was generated by cvs2svn to compensate for changes in r174223, 2007-12-03 15:07:58 +00:00
net Revert r196976, now that <machine/param.h> behaves predictably. 2009-09-09 10:31:20 +00:00
nls Add C message catalogue entries for newer errnos: EBADMSG, EMULTIHOP, 2009-10-13 17:57:06 +00:00
posix1e Fix regression introduced with NFSv4 ACL support - make acl_to_text(3) 2009-09-01 18:30:17 +00:00
powerpc Mark uname(), getdomainname() and setdomainname() with COMPAT_FREEBSD4. 2008-11-09 10:45:13 +00:00
quad Fix a typo that prevented the quad symbols from being exported 2007-07-06 13:42:24 +00:00
regex Fix an off-by-one error in the marking of the O_CH operator 2009-09-16 06:32:23 +00:00
resolv Add an option to enforce strict RFC 1034 compliance. 2009-05-29 07:34:54 +00:00
rpc Lock around access to nc_file and netconfig_info ("ni"). The RPC 2009-06-24 23:17:16 +00:00
softfloat Reflect license change from NetBSD. 2009-03-10 21:13:26 +00:00
sparc64 Remove unneeded stdlib directories. 2009-06-23 14:11:41 +00:00
stdio Better glibc compatibility for getline/getdelim: 2009-10-04 19:43:36 +00:00
stdlib Make malloc(3) superpage aware. Specifically, if getpagesizes(3) returns 2009-09-26 18:20:40 +00:00
stdtime Improve the way failure of pthread_key_create() gets detected. 2009-09-14 11:20:45 +00:00
string Correct the information about when the respective functionality first 2009-04-23 08:37:56 +00:00
sys Current pselect(3) is implemented in usermode and thus vulnerable to 2009-10-27 10:55:34 +00:00
uuid Move uuid_enc_le, uuid_dec_le, uuid_enc_be and uuid_dec_be symbols 2008-09-19 15:52:56 +00:00
xdr Implement support for RPCSEC_GSS authentication to both the NFS client 2008-11-03 10:38:00 +00:00
yp Fix some "in in" typos in comments. 2008-03-26 07:32:08 +00:00
Makefile Second attempt at eliminating .text relocations in shared libraries 2009-07-14 21:19:13 +00:00
Versions.def Bump our namespace version for 9.0. 2009-09-13 13:15:36 +00:00