freebsd-dev/lib/libc/sys
Roy Marples 7045b1603b socket: Implement SO_RERROR
SO_RERROR indicates that receive buffer overflows should be handled as
errors. Historically receive buffer overflows have been ignored and
programs could not tell if they missed messages or messages had been
truncated because of overflows. Since programs historically do not
expect to get receive overflow errors, this behavior is not the
default.

This is really really important for programs that use route(4) to keep
in sync with the system. If we loose a message then we need to reload
the full system state, otherwise the behaviour from that point is
undefined and can lead to chasing bogus bug reports.

Reviewed by:	philip (network), kbowling (transport), gbe (manpages)
MFC after:	2 weeks
Differential Revision:	https://reviews.freebsd.org/D26652
2021-07-28 09:35:09 -07:00
..
__error.c General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
__vdso_gettimeofday.c vdso: lower precision of vdso implementation of CLOCK_MONOTONIC_FAST and CLOCK_UPTIME_FAST 2021-06-24 00:36:33 +03:00
_exit.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
_umtx_op.2 libc: Fix most issues reported by mandoc 2020-12-19 14:54:28 +00:00
abort2.2
accept4.c
accept.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
accept.c
access.2 Add AT_EMPTY_PATH for several *at(2) syscalls 2021-04-15 12:48:11 +03:00
acct.2 Document EINTEGRITY errors for many system calls. 2020-03-30 21:44:00 +00:00
adjtime.2 Remove references to timed(8) 2021-05-13 09:53:08 +02:00
aio_cancel.2
aio_error.2 Add aio_writev and aio_readv 2021-01-02 19:57:58 -07:00
aio_fsync.2 aio_fsync(2): Support O_DSYNC. 2021-01-08 13:15:56 +13:00
aio_mlock.2 Fix various nits in the aio operation manpages. 2016-08-19 17:37:32 +00:00
aio_read.2 Add aio_writev and aio_readv 2021-01-02 19:57:58 -07:00
aio_return.2 lio_listio: validate aio_lio_opcode 2021-01-11 19:53:01 -07:00
aio_suspend.2 aio_suspend.2: properly canonicalize .Dd 2020-12-11 00:28:28 +00:00
aio_suspend.c
aio_waitcomplete.2
aio_write.2 Add aio_writev and aio_readv 2021-01-02 19:57:58 -07:00
bind.2 Document EINTEGRITY errors for many system calls. 2020-03-30 21:44:00 +00:00
bindat.2 Clarify bindat/connectat use with AT_FDCWD 2018-04-30 17:16:17 +00:00
brk.2 Reimplement brk() and sbrk() to avoid the use of _end. 2018-06-04 19:35:15 +00:00
brk.c Reimplement brk() and sbrk() to avoid the use of _end. 2018-06-04 19:35:15 +00:00
cap_enter.2 cap_enter(2): fix CAVEATS section 2020-12-11 00:26:49 +00:00
cap_fcntls_limit.2 libcasper(3): Document HISTORY within the manpages 2020-06-16 16:48:52 +00:00
cap_ioctls_limit.2 libcasper(3): Document HISTORY within the manpages 2020-06-16 16:48:52 +00:00
cap_rights_limit.2 libcasper(3): Document HISTORY within the manpages 2020-06-16 16:48:52 +00:00
chdir.2 Document EINTEGRITY errors for many system calls. 2020-03-30 21:44:00 +00:00
chflags.2 Add AT_EMPTY_PATH for several *at(2) syscalls 2021-04-15 12:48:11 +03:00
chmod.2 Add AT_EMPTY_PATH for several *at(2) syscalls 2021-04-15 12:48:11 +03:00
chown.2 Add AT_EMPTY_PATH for several *at(2) syscalls 2021-04-15 12:48:11 +03:00
chroot.2 Updates to chroot(2) docs 2020-09-29 18:13:54 +00:00
clock_gettime.2 Remove references to timed(8) 2021-05-13 09:53:08 +02:00
clock_gettime.c libc: further adoption of SPDX licensing ID tags. 2017-11-25 17:12:48 +00:00
clock_nanosleep.c Remove 'All rights reserved' from my files 2018-05-09 20:12:59 +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
closefrom.2 Implement a close_range(2) syscall 2020-04-12 21:23:19 +00:00
closefrom.c closefrom: clamp lowfd to >= 0; close_range's parameters are unsigned. 2020-04-14 23:24:24 +00:00
compat-ino64.h Regularize my copyright notice 2019-12-04 16:56:11 +00:00
compat-stub.c Remove bits of the old NUMA. 2018-07-10 22:00:20 +00:00
connect.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
connect.c
connectat.2 connectat(2): clarify that the s argument is socket 2021-04-30 17:43:45 +03:00
copy_file_range.2 copy_file_range(2): add recommendation to use large "len" 2021-01-02 17:21:21 -08:00
cpuset_getaffinity.2 cpuset{,_getaffinity,_getdomain}.2: fix SEE ALSO 2020-12-11 01:52:27 +00:00
cpuset_getdomain.2 cpuset{,_getaffinity,_getdomain}.2: fix SEE ALSO 2020-12-11 01:52:27 +00:00
cpuset.2 Add code examples to cpuset(2), and improve cross referencing. 2021-04-25 15:22:00 +01:00
dup.2 Correct history for Unix 2nd Edition through 6th Edition for the 2017-12-01 22:48:20 +00:00
eventfd.2 eventfd.2: Add the mail address of the submitter into copyright. 2020-12-28 21:03:16 +02:00
execve.2 libc: Fix most issues reported by mandoc 2020-12-19 14:54:28 +00:00
extattr_get_file.2 extattr_get_file(20: bump .Dd 2020-12-08 04:18:16 +00:00
fcntl.2 open(2): Add O_DSYNC flag. 2021-01-08 13:15:56 +13: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
fhlink.2 fhlink(2): the syscalls do not take flag 2021-03-02 20:16:55 +02:00
fhopen.2
fhreadlink.2 Document EINTEGRITY errors for many system calls. 2020-03-30 21:44:00 +00:00
flock.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
fork.2 fork.2: Fix a typo in an example 2021-04-20 10:24:21 +02:00
fork.c
fstat.c Regularize my copyright notice 2019-12-04 16:56:11 +00:00
fstatat.c Regularize my copyright notice 2019-12-04 16:56:11 +00:00
fstatfs.c Regularize my copyright notice 2019-12-04 16:56:11 +00:00
fsync.2 Document EINTEGRITY errors for many system calls. 2020-03-30 21:44:00 +00:00
fsync.c
getdents.c Forward compatibility for ino64. 2017-06-23 18:06:20 +00:00
getdirentries.2 getdirentries.2: remove unnecessary space 2021-04-11 11:17:01 +02:00
getdirentries.c Regularize my copyright notice 2019-12-04 16:56:11 +00:00
getdtablesize.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
getfh.2 open(2): Remove O_BENEATH and AT_BENEATH 2021-03-02 20:16:55 +02:00
getfsstat.2 Document EINTEGRITY errors for many system calls. 2020-03-30 21:44:00 +00:00
getfsstat.c Regularize my copyright notice 2019-12-04 16:56:11 +00:00
getgid.2 libc manpages: various improvements from NetBSD 2020-06-14 05:59:30 +00:00
getgroups.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
getitimer.2 Fix a few mandoc issues 2020-10-09 19:12:44 +00:00
getlogin.2 getlogin_r: fix the type of len 2020-09-09 18:07:13 +00:00
getloginclass.2 Drop "All rights reserved" from all my stuff. This includes 2020-10-28 13:46:11 +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 getrandom(2): Add Linux GRND_INSECURE API flag 2020-01-12 20:47:38 +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 socket: Implement SO_RERROR 2021-07-28 09:35:09 -07:00
gettimeofday.2 Remove references to timed(8) 2021-05-13 09:53:08 +02: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 libthr: wrap pdfork(2), same as fork(2). 2021-01-11 22:59:52 +02:00
intro.2 Create new EINTEGRITY error with message "Integrity check failed". 2019-01-17 06:35:45 +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 jail: Change both root and working directories in jail_attach(2) 2021-02-19 14:13:35 -08:00
kenv.2 kenv: allow listing of static kernel environments 2021-07-18 23:06:19 -05:00
kevent.c
kill.2 Only return EPERM from kill(-pid) when no process was signalled. 2019-12-07 18:07:49 +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 kevent: Prohibit negative change and event list lengths 2021-05-27 15:52:20 -04:00
ktrace.2 Document EINTEGRITY errors for many system calls. 2020-03-30 21:44:00 +00:00
link.2 Add AT_EMPTY_PATH for several *at(2) syscalls 2021-04-15 12:48:11 +03:00
lio_listio.2 lio_listio(2): fix manlint error 2020-12-08 03:48:05 +00:00
listen.2 Make sonewconn() overflow messages have per-socket rate-limits and values. 2020-04-14 15:38:18 +00:00
lseek.2 lseek(2): Document the seek behavior better and update the POSIX compliance 2020-07-13 15:52:57 +00:00
lstat.c Regularize my copyright notice 2019-12-04 16:56:11 +00:00
madvise.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
Makefile.inc mq_unlink(3): Add manual page 2021-02-18 18:56:52 +01:00
mincore.2 Include the psind in data returned by mincore(2). 2020-09-02 18:16:43 +00:00
minherit.2 Implement INHERIT_ZERO for minherit(2). 2017-03-14 17:10:42 +00:00
mkdir.2 Document EINTEGRITY errors for many system calls. 2020-03-30 21:44:00 +00:00
mkfifo.2 Trim some duplicate EIO descriptions. 2020-03-30 21:48:47 +00:00
mknod.2 Document EINTEGRITY errors for many system calls. 2020-03-30 21:44:00 +00:00
mknod.c Commit the 64-bit inode project. 2017-05-23 09:29:05 +00:00
mlock.2 Provide separate accounting for user-wired pages. 2019-05-13 16:38:48 +00:00
mlockall.2 Provide separate accounting for user-wired pages. 2019-05-13 16:38:48 +00:00
mmap.2 mmap(2): Update .Dd missed in the last commit 2020-12-24 14:14:56 +00:00
modfind.2
modnext.2
modstat.2
mount.2 Document EINTEGRITY errors for many system calls. 2020-03-30 21:44:00 +00:00
mprotect.2 Return ENOTSUP for mmap/mprotect if prot not subset of prot_max 2020-02-26 20:03:43 +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 mq_open(2): Fix xref to mq_unlink(2) 2021-03-04 13:32:42 +01:00
mq_receive.2
mq_send.2
mq_setattr.2
mq_unlink.2 mq_unlink(3): Add manual page 2021-02-18 18:56:52 +01:00
msgctl.2 Avoid copying out kernel pointers from msgctl(IPC_STAT). 2020-07-09 17:26:49 +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
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
nfssvc.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
ntp_adjtime.2
open.2 openat(2): add O_EMPTY_PATH 2021-05-11 02:39:24 +03:00
open.c
openat.c libc: partially revert r326576 2020-04-25 14:24:54 +00:00
pathconf.2 Document EINTEGRITY errors for many system calls. 2020-03-30 21:44:00 +00:00
pdfork.2 libc: Fix most issues reported by mandoc 2020-12-19 14:54:28 +00:00
pdfork.c libthr: wrap pdfork(2), same as fork(2). 2021-01-11 22:59:52 +02:00
pipe.2 Correct history for Unix 2nd Edition through 6th Edition for the 2017-12-01 22:48:20 +00:00
pipe.c
poll.2 poll(2): Add POLLRDHUP. 2021-04-28 23:00:31 +12:00
poll.c
posix_fadvise.2 Document EINTEGRITY errors for many system calls. 2020-03-30 21:44:00 +00:00
posix_fallocate.2 Document EINTEGRITY errors for many system calls. 2020-03-30 21:44:00 +00:00
posix_openpt.2 posix_openpt.2: Sort includes per style(9) 2016-09-21 17:51:27 +00:00
ppoll.c
procctl.2 Pass the syscall number to capsicum permission-denied signals 2021-07-16 18:06:44 +01: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
ptrace.2 ptrace: add an option to not kill debuggees on debugger exit 2021-05-25 18:22:34 +03:00
ptrace.c Rewrite ptrace(2) wrappers in C. 2016-08-29 18:47:51 +00:00
quotactl.2 Document EINTEGRITY errors for many system calls. 2020-03-30 21:44:00 +00:00
rctl_add_rule.2 rctl_add_rule(2): fix manlint warnings 2017-05-23 07:32:57 +00:00
read.2 vfs: add restrictions to read(2) of a directory [2/2] 2020-06-04 18:17:25 +00:00
read.c
readlink.2 Document EINTEGRITY errors for many system calls. 2020-03-30 21:44:00 +00:00
readv.c
reboot.2 Tweak documentation to RB_ constants to reflect current use 2018-07-10 00:01:14 +00:00
recv.2 Update example to something people less than 40 years old have heard about. 2018-10-21 07:30:26 +00:00
recvfrom.c
recvmsg.c
rename.2 Document EINTEGRITY errors for many system calls. 2020-03-30 21:44:00 +00:00
revoke.2 libc: Fix most issues reported by mandoc 2020-12-19 14:54:28 +00:00
rfork.2 posix_spawn(3): handle potential signal issues with vfork 2019-09-25 19:22:03 +00:00
rmdir.2 Document EINTEGRITY errors for many system calls. 2020-03-30 21:44:00 +00:00
rtprio.2 libc: Fix most issues reported by mandoc 2020-12-19 14:54:28 +00:00
sched_get_priority_max.2
sched_setparam.2
sched_setscheduler.2
sched_yield.2
sctp_generic_recvmsg.2
sctp_generic_sendmsg.2
sctp_peeloff.2
select.2 man page of select(2) should mention pselect(2) 2020-06-25 12:31:05 +00:00
select.c
semctl.2 Apply the logic from r363051 to semctl(2) and __sem_base field. 2020-07-09 18:34:54 +00:00
semget.2 Refer to SysV IPC permissions as numeric constants. 2018-03-04 20:06:02 +00:00
semop.2
send.2 Document handling of connection-mode sockets by sendto(2). 2020-04-27 16:12:32 +00:00
sendfile.2 libc: Fix most issues reported by mandoc 2020-12-19 14:54:28 +00:00
sendmsg.c
sendto.c
setcontext.c libc: partially revert r326576 2020-04-25 14:24:54 +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
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 shm_open(2): Cross-reference posixshmcontrol(1) 2021-06-25 18:12:05 +02:00
shm_open.c Fix error checking in shm_create_largepage(). 2020-09-18 12:30:15 +00:00
shmat.2 Implement shmat(2) flag SHM_REMAP. 2019-01-16 05:15:57 +00:00
shmctl.2
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 [skip ci] document close_range(2) as async-signal-safe 2020-07-21 16:46:40 +00:00
sigaction.c
sigaltstack.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
sigfastblock.2 Add a way to manage thread signal mask using shared word, instead of syscall. 2020-02-09 11:53:12 +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
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
sigtimedwait.c
sigwait.2
sigwait.c libc: further adoption of SPDX licensing ID tags. 2017-11-25 17:12:48 +00:00
sigwaitinfo.2
sigwaitinfo.c
socket.2 Document socket control message routines for ancillary data access (CMSG_DATA). 2018-08-19 17:42:49 +00:00
socketpair.2 socketpair.2: Reference relevant POSIX standards 2018-02-10 19:41:32 +00:00
stat.2 Add AT_EMPTY_PATH for several *at(2) syscalls 2021-04-15 12:48:11 +03:00
stat.c Regularize my copyright notice 2019-12-04 16:56:11 +00:00
statfs.2 Document EINTEGRITY errors for many system calls. 2020-03-30 21:44:00 +00:00
statfs.c Regularize my copyright notice 2019-12-04 16:56:11 +00:00
swapcontext.c libc: partially revert r326576 2020-04-25 14:24:54 +00:00
swapon.2 Document EINTEGRITY errors for many system calls. 2020-03-30 21:44:00 +00:00
Symbol.map libthr: wrap pdfork(2), same as fork(2). 2021-01-11 22:59:52 +02:00
symlink.2 Trim some duplicate EIO descriptions. 2020-03-30 21:48: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 libc: Fix most issues reported by mandoc 2020-12-19 14:54:28 +00:00
thr_kill.2 Add HISTORY sections to document when this 2020-05-05 19:31:47 +00:00
thr_new.2 libc: Fix most issues reported by mandoc 2020-12-19 14:54:28 +00:00
thr_self.2 libc: Fix most issues reported by mandoc 2020-12-19 14:54:28 +00:00
thr_set_name.2 libc: Fix most issues reported by mandoc 2020-12-19 14:54:28 +00:00
thr_suspend.2 libc: Fix most issues reported by mandoc 2020-12-19 14:54:28 +00:00
thr_wake.2 libc: Fix most issues reported by mandoc 2020-12-19 14:54:28 +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 Document EINTEGRITY errors for many system calls. 2020-03-30 21:44:00 +00:00
umask.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
undelete.2 Document EINTEGRITY errors for many system calls. 2020-03-30 21:44:00 +00:00
unlink.2 open(2): Remove O_BENEATH and AT_BENEATH 2021-03-02 20:16:55 +02:00
utimensat.2 Add AT_EMPTY_PATH for several *at(2) syscalls 2021-04-15 12:48:11 +03:00
utimes.2 Document EINTEGRITY errors for many system calls. 2020-03-30 21:44:00 +00:00
utrace.2
uuidgen.2
vadvise.c Make vadvise compat freebsd11. 2018-05-25 20:40:23 +00:00
vfork.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
wait4.c
wait6.c
wait.2 wait(2): clarify reparenting of children of the exiting process. 2019-08-11 15:47:48 +00:00
write.2 pwrite(2): add a BUGS section 2021-02-20 08:05:43 +00:00
write.c
writev.c