summaryrefslogtreecommitdiff
path: root/src/unistd/faccessat.c
AgeCommit message (Collapse)AuthorFilesLines
2013-08-09block all signals, even implementation-internal ones, in faccessat childRich Felker1-1/+1
the child process's stack may be insufficient size to support a signal frame, and there is no reason these signal handlers should run in the child anyway.
2013-08-03fix faccessat to support AT_EACCESS flagRich Felker1-1/+46
this is another case of the kernel syscall failing to support flags where it needs to, leading to horrible workarounds in userspace. this time the workaround requires changing uid/gid, and that's not safe to do in the current process. in the worst case, kernel resource limits might prevent recovering the original values, and then there would be no way to safely return. so, use the safe but horribly inefficient alternative: forking. clone is used instead of fork to suppress signals from the child. fortunately this worst-case code is only needed when effective and real ids mismatch, which mainly happens in suid programs.
2011-03-20global cleanup to use the new syscall interfaceRich Felker1-1/+1
2011-02-12initial check-in, version 0.5.0v0.5.0Rich Felker1-0/+7