1
0
mirror of https://git.FreeBSD.org/src.git synced 2025-01-22 15:47:37 +00:00
freebsd/lib/libc/sys
Conrad Meyer 08a7e74c7c getentropy(3): Fallback to kern.arandom sysctl on older kernels
On older kernels, when userspace program disables SIGSYS, catch ENOSYS and
emulate getrandom(2) syscall with the kern.arandom sysctl (via existing
arc4_sysctl wrapper).

Special care is taken to faithfully emulate EFAULT on NULL pointers, because
sysctl(3) as used by kern.arandom ignores NULL oldp.  (This was caught by
getentropy(3) ATF tests.)

Reported by:	kib
Reviewed by:	kib
Discussed with:	delphij
Sponsored by:	Dell EMC Isilon
Differential Revision:	https://reviews.freebsd.org/D14785
2018-03-21 23:52:37 +00:00
..
__error.c General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
__vdso_gettimeofday.c libc: further adoption of SPDX licensing ID tags. 2017-11-25 17:12:48 +00:00
_exit.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
_umtx_op.2 Fix formatting of _umtx_op(2) 2017-11-13 17:46:38 +00:00
abort2.2
accept4.c Fix known issues which blow up the process after dlopen("libthr.so") 2015-01-03 18:38:46 +00:00
accept.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
accept.c Fix known issues which blow up the process after dlopen("libthr.so") 2015-01-03 18:38:46 +00:00
access.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
acct.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
adjtime.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
aio_cancel.2
aio_error.2
aio_fsync.2 Fix various nits in the aio operation manpages. 2016-08-19 17:37:32 +00:00
aio_mlock.2 Fix various nits in the aio operation manpages. 2016-08-19 17:37:32 +00:00
aio_read.2 Fix various nits in the aio operation manpages. 2016-08-19 17:37:32 +00:00
aio_return.2 Fully handle size_t lengths in AIO requests. 2016-03-21 21:37:33 +00:00
aio_suspend.2 Bump man page revision dates for r324941 2017-10-24 14:34:25 +00:00
aio_suspend.c Fix known issues which blow up the process after dlopen("libthr.so") 2015-01-03 18:38:46 +00:00
aio_waitcomplete.2 Fully handle size_t lengths in AIO requests. 2016-03-21 21:37:33 +00:00
aio_write.2 Fix various nits in the aio operation manpages. 2016-08-19 17:37:32 +00:00
bind.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
bindat.2
brk.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
cap_enter.2 cap_enter(2): fix manlint issues 2017-05-23 07:31:03 +00:00
cap_fcntls_limit.2
cap_ioctls_limit.2 forgot to bump date, and replace contraction (igor)... 2015-03-07 03:48:32 +00:00
cap_rights_limit.2
chdir.2 Mark all the system calls that were in 1st Edition Unix as such in the 2017-12-01 22:26:36 +00:00
chflags.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
chmod.2 Mark all the system calls that were in 1st Edition Unix as such in the 2017-12-01 22:26:36 +00:00
chown.2 Mark all the system calls that were in 1st Edition Unix as such in the 2017-12-01 22:26:36 +00:00
chroot.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
clock_gettime.2 clock_gettime.2: add some clock IDs 2017-03-22 00:50:36 +00:00
clock_gettime.c libc: further adoption of SPDX licensing ID tags. 2017-11-25 17:12:48 +00:00
clock_nanosleep.c Add clock_nanosleep() 2017-03-19 00:51:12 +00:00
close.2 Mark all the system calls that were in 1st Edition Unix as such in the 2017-12-01 22:26:36 +00:00
close.c Add missing includes to eliminate -Wmissing-prototypes warnings 2015-09-20 03:45:57 +00:00
closefrom.2 Reassign copyright statements on several files from Advanced 2015-04-23 14:22:20 +00:00
compat-ino64.h Forward compatibility for ino64. 2017-06-23 18:06:20 +00:00
connect.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
connect.c Fix known issues which blow up the process after dlopen("libthr.so") 2015-01-03 18:38:46 +00:00
connectat.2
cpuset_getaffinity.2 Allow cpuset_{get,set}affinity in capabilities mode 2017-05-24 00:58:30 +00:00
cpuset.2 cpuset.2: Document new API options 2017-05-03 18:46:33 +00:00
dup.2 Correct history for Unix 2nd Edition through 6th Edition for the 2017-12-01 22:48:20 +00:00
execve.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
extattr_get_file.2
fcntl.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
fcntl.c libc: further adoption of SPDX licensing ID tags. 2017-11-25 17:12:48 +00:00
fdatasync.c The fdatasync(2) call must be cancellation point. 2016-08-16 08:27:03 +00:00
ffclock.2
fhopen.2
flock.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
fork.2 Mark all the system calls that were in 1st Edition Unix as such in the 2017-12-01 22:26:36 +00:00
fork.c Fix known issues which blow up the process after dlopen("libthr.so") 2015-01-03 18:38:46 +00:00
fstat.c Forward compatibility for ino64. 2017-06-23 18:06:20 +00:00
fstatat.c Forward compatibility for ino64. 2017-06-23 18:06:20 +00:00
fstatfs.c Forward compatibility for ino64. 2017-06-23 18:06:20 +00:00
fsync.2 fsync.2: Cross-reference fsync(1) 2018-02-06 23:12:47 +00:00
fsync.c Add missing includes to eliminate -Wmissing-prototypes warnings 2015-09-20 03:45:57 +00:00
getdents.c Forward compatibility for ino64. 2017-06-23 18:06:20 +00:00
getdirentries.2 Mention that the basep argument to getdirentries(2) can be NULL. 2017-05-28 21:42:47 +00:00
getdirentries.c Forward compatibility for ino64. 2017-06-23 18:06:20 +00:00
getdtablesize.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
getfh.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
getfsstat.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
getfsstat.c Be sure to free allocated statfs11 buffer. 2017-06-24 00:28:35 +00:00
getgid.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
getgroups.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
getitimer.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
getlogin.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
getloginclass.2 Add some .Xrs to getloginclass(2). 2016-07-12 06:00:57 +00:00
getpeername.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
getpgrp.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
getpid.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
getpriority.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
getrandom.2 Implement getrandom(2) and getentropy(3) 2018-03-21 01:15:45 +00:00
getrlimit.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
getrusage.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
getsid.2
getsockname.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
getsockopt.2 Fix minor formatting issue. 2017-08-13 15:15:40 +00:00
gettimeofday.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
gettimeofday.c libc: further adoption of SPDX licensing ID tags. 2017-11-25 17:12:48 +00:00
getuid.2 Correct history for Unix 2nd Edition through 6th Edition for the 2017-12-01 22:48:20 +00:00
interposing_table.c Add clock_nanosleep() 2017-03-19 00:51:12 +00:00
intro.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
ioctl.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
issetugid.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
jail.2 Mark jail(2), and the sysctls that it (and only it) uses as deprecated. 2016-05-30 05:21:24 +00:00
kenv.2 Make several improvements and corrections in the kenv(2) man page 2017-02-21 19:51:41 +00:00
kevent.c Make kevent(2) a cancellation point. 2015-03-29 19:14:41 +00:00
kill.2 Correct history for Unix 2nd Edition through 6th Edition for the 2017-12-01 22:48:20 +00:00
kldfind.2
kldfirstmod.2
kldload.2
kldnext.2
kldstat.2
kldsym.2 Use 'cmd' rather than 'command' to match the function prototype. 2016-10-17 22:36:37 +00:00
kldunload.2
kqueue.2 Fix a few more speelling errors 2017-12-28 01:31:28 +00:00
ktrace.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
link.2 Mark all the system calls that were in 1st Edition Unix as such in the 2017-12-01 22:26:36 +00:00
lio_listio.2 Bump man page revision dates for r324941 2017-10-24 14:34:25 +00:00
listen.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
lseek.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
lstat.c Forward compatibility for ino64. 2017-06-23 18:06:20 +00:00
madvise.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
Makefile.inc Implement getrandom(2) and getentropy(3) 2018-03-21 01:15:45 +00:00
mincore.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
minherit.2 Implement INHERIT_ZERO for minherit(2). 2017-03-14 17:10:42 +00:00
mkdir.2 Mark all the system calls that were in 1st Edition Unix as such in the 2017-12-01 22:26:36 +00:00
mkfifo.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
mknod.2 Fix missing .Dd bump 2017-12-01 22:52:45 +00:00
mknod.c Commit the 64-bit inode project. 2017-05-23 09:29:05 +00:00
mlock.2 Remove a lingering inaccuracy from mlock.2. 2018-03-20 20:45:47 +00:00
mlockall.2
mmap.2 Simplify language. 2017-07-08 07:33:30 +00:00
modfind.2 Use the right argumant name 2016-03-18 08:47:17 +00:00
modnext.2
modstat.2
mount.2 Mark all the system calls that were in 1st Edition Unix as such in the 2017-12-01 22:26:36 +00:00
mprotect.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
mq_close.2
mq_getattr.2
mq_notify.2 Add documentation for the sigevent structure. 2016-07-15 15:12:56 +00:00
mq_open.2 document mqueuefs is required for mq_open... 2014-09-15 22:32:35 +00:00
mq_receive.2
mq_send.2
mq_setattr.2
msgctl.2 Rename kernel-only members of semid_ds and msgid_ds. 2018-03-02 22:10:48 +00:00
msgget.2 Refer to SysV IPC permissions as numeric constants. 2018-03-04 20:06:02 +00:00
msgrcv.2 Change the return type of msgrcv() to ssize_t as required by POSIX. 2016-07-28 12:22:01 +00:00
msgsnd.2
msync.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
msync.c Add missing includes to eliminate -Wmissing-prototypes warnings 2015-09-20 03:45:57 +00:00
munmap.2 Implement address space guards. 2017-06-24 17:01:11 +00:00
nanosleep.2 Add clock_nanosleep() 2017-03-19 00:51:12 +00:00
nanosleep.c Fix known issues which blow up the process after dlopen("libthr.so") 2015-01-03 18:38:46 +00:00
nfssvc.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
ntp_adjtime.2
numa_getaffinity.2 Add an initial NUMA affinity/policy configuration for threads and processes. 2015-07-11 15:21:37 +00:00
open.2 Mark all the system calls that were in 1st Edition Unix as such in the 2017-12-01 22:26:36 +00:00
open.c Reduce the size of the interposing table and amount of 2015-01-11 22:16:31 +00:00
openat.c use @@@ instead of @@ in __sym_default 2017-12-05 20:19:13 +00:00
pathconf.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
pdfork.2 pdwait4(2): Remove documentation of vaporware 2017-06-17 17:32:40 +00:00
pipe.2 Correct history for Unix 2nd Edition through 6th Edition for the 2017-12-01 22:48:20 +00:00
pipe.c Replace use of the pipe(2) system call with pipe2(2) with a zero flags 2016-06-22 21:11:27 +00:00
poll.2 Various mdoc fixes and a few EOL whitespace removals. 2014-12-21 12:36:36 +00:00
poll.c Fix known issues which blow up the process after dlopen("libthr.so") 2015-01-03 18:38:46 +00:00
posix_fadvise.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
posix_fallocate.2 posix_fallocate.2: add an EINVAL errno case 2017-11-05 03:02:19 +00:00
posix_openpt.2 posix_openpt.2: Sort includes per style(9) 2016-09-21 17:51:27 +00:00
ppoll.c Make wait6(2), waitid(3) and ppoll(2) cancellation points. The 2015-04-18 21:35:41 +00:00
procctl.2 Kill all descendants of the reaper, even if they are descendants of a 2017-11-23 11:25:11 +00:00
profil.2 Correct history for Unix 2nd Edition through 6th Edition for the 2017-12-01 22:48:20 +00:00
pselect.2
pselect.c Fix known issues which blow up the process after dlopen("libthr.so") 2015-01-03 18:38:46 +00:00
ptrace.2 Correct history for Unix 2nd Edition through 6th Edition for the 2017-12-01 22:48:20 +00:00
ptrace.c Rewrite ptrace(2) wrappers in C. 2016-08-29 18:47:51 +00:00
quotactl.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
rctl_add_rule.2 rctl_add_rule(2): fix manlint warnings 2017-05-23 07:32:57 +00:00
read.2 Mark all the system calls that were in 1st Edition Unix as such in the 2017-12-01 22:26:36 +00:00
read.c Fix known issues which blow up the process after dlopen("libthr.so") 2015-01-03 18:38:46 +00:00
readlink.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
readv.c Add missing includes to eliminate -Wmissing-prototypes warnings 2015-09-20 03:45:57 +00:00
reboot.2 Define RB_POWERCYCLE 2017-10-25 15:30:20 +00:00
recv.2 Fixed description of msg_name/msg_namelen in recvmsg(). 2017-10-03 11:13:25 +00:00
recvfrom.c Fix known issues which blow up the process after dlopen("libthr.so") 2015-01-03 18:38:46 +00:00
recvmsg.c Fix known issues which blow up the process after dlopen("libthr.so") 2015-01-03 18:38:46 +00:00
rename.2 rename(2): document capability mode errors 2017-09-15 20:12:38 +00:00
revoke.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
rfork.2
rmdir.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
rtprio.2
sched_get_priority_max.2
sched_setparam.2
sched_setscheduler.2 Various mdoc fixes and a few EOL whitespace removals. 2014-12-21 12:36:36 +00:00
sched_yield.2
sctp_generic_recvmsg.2
sctp_generic_sendmsg.2
sctp_peeloff.2
select.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
select.c Fix known issues which blow up the process after dlopen("libthr.so") 2015-01-03 18:38:46 +00:00
semctl.2 Don't declare union semun in userspace unless _WANT_SEMUN is defined. 2018-03-02 22:32:53 +00:00
semget.2 Refer to SysV IPC permissions as numeric constants. 2018-03-04 20:06:02 +00:00
semop.2
send.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
sendfile.2 Add a space between a section number and a following comma. 2018-03-15 19:03:54 +00:00
sendmsg.c Fix known issues which blow up the process after dlopen("libthr.so") 2015-01-03 18:38:46 +00:00
sendto.c Fix known issues which blow up the process after dlopen("libthr.so") 2015-01-03 18:38:46 +00:00
setcontext.c use @@@ instead of @@ in __sym_default 2017-12-05 20:19:13 +00:00
setfib.2 Don't end up manpage titles with a full stop. 2017-05-24 21:02:53 +00:00
setgroups.2 Update .Dd missed in -r328304. 2018-01-24 22:36:21 +00:00
setpgid.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
setregid.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
setresuid.2 Remove useless comment. 2015-02-07 13:11:45 +00:00
setreuid.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
setsid.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
setuid.2 Correct history for Unix 2nd Edition through 6th Edition for the 2017-12-01 22:48:20 +00:00
shm_open.2 Mention sendfile(2) by popular demand. 2017-01-20 17:29:59 +00:00
shmat.2 o EMFILE errno documented. 2018-01-26 08:38:26 +00:00
shmctl.2 Change the default setting of kern.ipc.shm_allow_removed from 0 to 1. 2015-10-10 09:29:47 +00:00
shmget.2 Refer to SysV IPC permissions as numeric constants. 2018-03-04 20:06:02 +00:00
shutdown.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
sigaction.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
sigaction.c Switch libc from using _sig{procmask,action,suspend} symbols, which 2015-08-29 14:25:01 +00:00
sigaltstack.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
sigpending.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
sigprocmask.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
sigprocmask.c Switch libc from using _sig{procmask,action,suspend} symbols, which 2015-08-29 14:25:01 +00:00
sigqueue.2 Provide a freebsd32 implementation of sigqueue() 2017-05-05 18:49:39 +00:00
sigreturn.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
sigstack.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
sigsuspend.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
sigsuspend.c Switch libc from using _sig{procmask,action,suspend} symbols, which 2015-08-29 14:25:01 +00:00
sigtimedwait.c Fix known issues which blow up the process after dlopen("libthr.so") 2015-01-03 18:38:46 +00:00
sigwait.2
sigwait.c libc: further adoption of SPDX licensing ID tags. 2017-11-25 17:12:48 +00:00
sigwaitinfo.2 Various mdoc fixes and a few EOL whitespace removals. 2014-12-21 12:36:36 +00:00
sigwaitinfo.c Fix known issues which blow up the process after dlopen("libthr.so") 2015-01-03 18:38:46 +00:00
socket.2 Remove an inaccuracy from socket.2. 2017-06-10 21:07:55 +00:00
socketpair.2 socketpair.2: Reference relevant POSIX standards 2018-02-10 19:41:32 +00:00
stat.2 Mark all the system calls that were in 1st Edition Unix as such in the 2017-12-01 22:26:36 +00:00
stat.c Forward compatibility for ino64. 2017-06-23 18:06:20 +00:00
statfs.2 Add a reference to getfsstat in statfs. 2017-11-22 05:27:18 +00:00
statfs.c Forward compatibility for ino64. 2017-06-23 18:06:20 +00:00
swapcontext.c use @@@ instead of @@ in __sym_default 2017-12-05 20:19:13 +00:00
swapon.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
Symbol.map getentropy(3): Fallback to kern.arandom sysctl on older kernels 2018-03-21 23:52:37 +00:00
symlink.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
sync.2 Correct history for Unix 2nd Edition through 6th Edition for the 2017-12-01 22:48:20 +00:00
sysarch.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
syscall.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
thr_exit.2 thr_*(2): Add xrefs to what libthr implements using each syscall. 2016-06-01 21:58:13 +00:00
thr_kill.2 thr_*(2): Add xrefs to what libthr implements using each syscall. 2016-06-01 21:58:13 +00:00
thr_new.2 Improve errno documentation in pthread_create(3) and thr_new(2) 2016-06-03 14:30:32 +00:00
thr_self.2 thr_*(2): Add xrefs to what libthr implements using each syscall. 2016-06-01 21:58:13 +00:00
thr_set_name.2 thr_set_name(): silently truncate the given name as needed 2016-12-03 01:14:21 +00:00
thr_suspend.2 Reword the statement. 2016-09-30 16:02:25 +00:00
thr_wake.2 Document thr_suspend(2) and thr_wake(2). 2016-09-26 08:18:34 +00:00
timer_create.2 Add documentation for the sigevent structure. 2016-07-15 15:12:56 +00:00
timer_delete.2
timer_settime.2
trivial-vdso_tc.c Implement userspace gettimeofday(2) with HPET timecounter. 2016-08-17 09:52:09 +00:00
truncate.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
umask.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
undelete.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
unlink.2 Mark all the system calls that were in 1st Edition Unix as such in the 2017-12-01 22:26:36 +00:00
utimensat.2 libc: Remove futimens() and utimensat() compat stubs. 2017-06-07 21:21:14 +00:00
utimes.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
utrace.2 mdoc: sort Xr 2016-01-18 20:21:38 +00:00
uuidgen.2
vfork.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
wait4.c Fix known issues which blow up the process after dlopen("libthr.so") 2015-01-03 18:38:46 +00:00
wait6.c Make wait6(2), waitid(3) and ppoll(2) cancellation points. The 2015-04-18 21:35:41 +00:00
wait.2 Mark all the system calls that were in 1st Edition Unix as such in the 2017-12-01 22:26:36 +00:00
write.2 Mark all the system calls that were in 1st Edition Unix as such in the 2017-12-01 22:26:36 +00:00
write.c Fix known issues which blow up the process after dlopen("libthr.so") 2015-01-03 18:38:46 +00:00
writev.c Add missing includes to eliminate -Wmissing-prototypes warnings 2015-09-20 03:45:57 +00:00