freebsd-dev/lib/libc/sys
John Baldwin bb430bc740 Fully handle size_t lengths in AIO requests.
First, update the return types of aio_return() and aio_waitcomplete() to
ssize_t.

POSIX requires aio_return() to return a ssize_t so that it can represent
all return values from read() and write().  aio_waitcomplete() should use
ssize_t for the same reason.

aio_return() has used ssize_t in <aio.h> since r31620 but the manpage and
system call entry were not updated.  aio_waitcomplete() has always
returned int.

Note that this does not require new system call stubs as this is
effectively only an API change in how the compiler interprets the return
value.

Second, allow aio_nbytes values up to IOSIZE_MAX instead of just INT_MAX.

aio_read/write should now honor the same length limits as normal read/write.

Third, use longs instead of ints in the aio_return() and aio_waitcomplete()
system call functions so that the 64-bit size_t in the in-kernel aiocb
isn't truncated to 32-bits before being copied out to userland or
being returned.

Finally, a simple test has been added to verify the bounds checking on the
maximum read size from a file.
2016-03-21 21:37:33 +00:00
..
__error.c Add missing include to eliminate -Wmissing-prototypes warnings 2015-09-20 03:49:08 +00:00
__vdso_gettimeofday.c Copy the fencing of the algorithm to do lock-less update and reading 2015-08-04 12:33:51 +00:00
_exit.2
abort2.2 use .Mt to mark up email addresses consistently (part4) 2014-06-23 08:25:03 +00:00
accept4.c Fix known issues which blow up the process after dlopen("libthr.so") 2015-01-03 18:38:46 +00:00
accept.2 accept(2) may and can return EAGAIN, document it. 2014-10-10 03:05:55 +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 Various mdoc fixes and a few EOL whitespace removals. 2014-12-21 12:36:36 +00:00
acct.2
adjtime.2
aio_cancel.2 use .Mt to mark up email addresses consistently (part4) 2014-06-23 08:25:03 +00:00
aio_error.2 use .Mt to mark up email addresses consistently (part4) 2014-06-23 08:25:03 +00:00
aio_fsync.2 - Fix EBADF description, in following the future POSIX tc and what FreeBSD 2013-12-27 16:57:38 +00:00
aio_mlock.2 use .Mt to mark up email addresses consistently (part4) 2014-06-23 08:25:03 +00:00
aio_read.2 use .Mt to mark up email addresses consistently (part4) 2014-06-23 08:25:03 +00:00
aio_return.2 Fully handle size_t lengths in AIO requests. 2016-03-21 21:37:33 +00:00
aio_suspend.2 use .Mt to mark up email addresses consistently (part4) 2014-06-23 08:25:03 +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 use .Mt to mark up email addresses consistently (part4) 2014-06-23 08:25:03 +00:00
bind.2 Document EINVAL as per POSIX. 2014-06-26 10:21:00 +00:00
bindat.2 use .Mt to mark up email addresses consistently (part4) 2014-06-23 08:25:03 +00:00
brk.2 Remove sys/types.h due to STANDARDS and unistd.h also includes sys/types.h. 2015-12-15 15:19:06 +00:00
cap_enter.2 Update system man pages for s/capability.h/capsicum.h/. 2014-03-27 21:43:00 +00:00
cap_fcntls_limit.2 use .Mt to mark up email addresses consistently (part4) 2014-06-23 08:25:03 +00:00
cap_ioctls_limit.2 forgot to bump date, and replace contraction (igor)... 2015-03-07 03:48:32 +00:00
cap_rights_limit.2 use .Mt to mark up email addresses consistently (part4) 2014-06-23 08:25:03 +00:00
chdir.2
chflags.2 Add some missing .Nm for newer syscalls in existing man pages. 2014-01-11 22:00:16 +00:00
chmod.2 chmod(2): Document S_ISVTX following SUSv3/SUSv4. 2013-12-01 12:24:57 +00:00
chown.2
chroot.2 - Use standard RETURN VALUES section. 2013-01-15 14:09:08 +00:00
clock_gettime.2 Verify that tv_sec value specified in settimeofday() and clock_settime() 2015-12-27 15:37:07 +00:00
clock_gettime.c Use struct vdso_timehands data to implement fast gettimeofday(2) and 2012-06-22 07:13:30 +00:00
close.2 Consistently reference file descriptors as "fd". 55 other manpages 2013-09-12 00:53:38 +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
connect.2 - connect(2) Clarify namelen 2016-02-04 18:03:06 +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 use .Mt to mark up email addresses consistently (part4) 2014-06-23 08:25:03 +00:00
cpuset_getaffinity.2 cpuset.9: Link to/from the new page 2015-10-20 23:52:37 +00:00
cpuset.2 cpuset.9: Link to/from the new page 2015-10-20 23:52:37 +00:00
dup.2 Add man page dup3(3). 2013-08-16 13:16:27 +00:00
execve.2
extattr_get_file.2 Fix return type of extattr_set_* and fix rmextattr(8) utility. 2013-04-02 05:30:41 +00:00
fcntl.2 Make the F_READAHEAD option to fcntl(2) work as documented: a value of zero 2013-02-13 15:09:16 +00:00
fcntl.c The lseek(2), mmap(2), truncate(2), ftruncate(2), pread(2), and 2015-04-18 21:50:13 +00:00
ffclock.2 use .Mt to mark up email addresses consistently (part4) 2014-06-23 08:25:03 +00:00
fhopen.2
flock.2 Document that flock can return ENOLCK 2011-11-10 06:20:18 +00:00
fork.2 fork(2): Add a note to the effect that kqueue descriptors, unlike other 2015-05-02 00:29:27 +00:00
fork.c Fix known issues which blow up the process after dlopen("libthr.so") 2015-01-03 18:38:46 +00:00
fsync.2
fsync.c Add missing includes to eliminate -Wmissing-prototypes warnings 2015-09-20 03:45:57 +00:00
futimens.c Update futimens/utimensat for MFC to stable/10: 2016-01-12 20:53:57 +00:00
getdirentries.2 Fix spelling of MAXNAMLEN. 2016-03-09 13:45:03 +00:00
getdtablesize.2 sysconf(2) -> sysconf(3) 2016-02-29 17:20:04 +00:00
getfh.2 getfh(2): Add xrefs for fhopen(2), open(2), stat(2). 2011-04-14 22:06:11 +00:00
getfsstat.2
getgid.2 Remove sys/types.h due to STANDARDS and unistd.h also includes sys/types.h. 2015-12-15 15:19:06 +00:00
getgroups.2
getitimer.2
getlogin.2
getloginclass.2 Add manual page for getloginclass(2) and setloginclass(2). 2011-03-06 08:35:50 +00:00
getpeername.2 Document that getpeername(2) and getsockname(2) can fail with EINVAL. 2012-11-23 10:14:54 +00:00
getpgrp.2
getpid.2 Remove sys/types.h due to STANDARDS and unistd.h also includes sys/types.h. 2015-12-15 15:19:06 +00:00
getpriority.2
getrlimit.2 getrlimit.2: Document RSS, AS/VMEM limit behavior more clearly 2015-08-20 00:00:15 +00:00
getrusage.2
getsid.2
getsockname.2 Document that getpeername(2) and getsockname(2) can fail with EINVAL. 2012-11-23 10:14:54 +00:00
getsockopt.2 Correct the returned message lengths for timeval and bintime control 2013-04-05 18:09:43 +00:00
gettimeofday.2 Verify that tv_sec value specified in settimeofday() and clock_settime() 2015-12-27 15:37:07 +00:00
gettimeofday.c Rework the __vdso_* symbols attributes to only make the symbols weak, 2013-01-30 12:48:16 +00:00
getuid.2 Remove sys/types.h due to STANDARDS and unistd.h also includes sys/types.h. 2015-12-15 15:08:29 +00:00
interposing_table.c If libthr.so is dlopened without RTLD_GLOBAL flag, the libthr symbols 2016-02-08 19:24:13 +00:00
intro.2 mdoc: remove superfluous paragraph macros. 2014-06-23 18:40:21 +00:00
ioctl.2 Consistently reference file descriptors as "fd". 55 other manpages 2013-09-12 00:53:38 +00:00
issetugid.2
jail.2 Remove man page references to rndassociates.com, which has been taken over 2016-02-10 14:48:49 +00:00
kenv.2 use .Mt to mark up email addresses consistently (part4) 2014-06-23 08:25:03 +00:00
kevent.c Make kevent(2) a cancellation point. 2015-03-29 19:14:41 +00:00
kill.2 Update the kill(2) and killpg(2) man pages to the modern permission 2012-10-22 03:37:00 +00:00
kldfind.2
kldfirstmod.2
kldload.2
kldnext.2
kldstat.2 Fix comment to specify correct struct name. 2012-03-28 23:51:06 +00:00
kldsym.2
kldunload.2
kqueue.2 Make it possible to implement poll(2) on top of kqueue(2). 2015-08-05 07:34:29 +00:00
kse.2 use .Mt to mark up email addresses consistently (part4) 2014-06-23 08:25:03 +00:00
ktrace.2 General mdoc(7) and typo fixes. 2012-05-08 18:56:21 +00:00
link.2
lio_listio.2
listen.2 Document that listen(2) can fail with EDESTADDRREQ. 2014-07-15 02:21:51 +00:00
lseek.2 Bump .Dd for r295764 2016-02-18 18:50:03 +00:00
madvise.2 Correct the description of MADV_DONTNEED. Specifically, after using 2015-07-12 19:18:19 +00:00
Makefile.inc Annotate arm userspace assembler sources stating their tolerance to 2015-09-29 16:09:58 +00:00
mincore.2
minherit.2
mkdir.2
mkfifo.2
mknod.2
mlock.2 Minor mdoc fix 2014-05-30 02:16:28 +00:00
mlockall.2 - Update manual pages accordingly to r244384 and r244385. 2012-12-25 13:43:01 +00:00
mmap.2 fix spelling, add comma and remove BUGS section.. it provided no useful 2015-02-19 01:51:17 +00:00
modfind.2 Use the right argumant name 2016-03-18 08:47:17 +00:00
modnext.2
modstat.2
mount.2 Remove obsolete bits about maximum number of file systems. 2015-04-12 21:14:58 +00:00
mprotect.2
mq_close.2
mq_getattr.2 Match the correct variable to the variable description. 2014-02-21 13:53:41 +00:00
mq_notify.2
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 mq_setattr(2): Add missing const to man page. 2011-05-17 21:03:34 +00:00
msgctl.2
msgget.2
msgrcv.2
msgsnd.2 General mdoc(7) and typo fixes. 2012-05-08 18:56:21 +00:00
msync.2 msync(2) must return ENOMEM and not EINVAL when the address is outside the 2014-05-07 08:38:02 +00:00
msync.c Add missing includes to eliminate -Wmissing-prototypes warnings 2015-09-20 03:45:57 +00:00
munmap.2
nanosleep.2
nanosleep.c Fix known issues which blow up the process after dlopen("libthr.so") 2015-01-03 18:38:46 +00:00
nfssvc.2 Globally replace u_int*_t from (non-contributed) man pages. 2012-02-12 18:29:56 +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 Fix markup. 2015-07-07 19:23:59 +00:00
open.c Reduce the size of the interposing table and amount of 2015-01-11 22:16:31 +00:00
openat.c Fix known issues which blow up the process after dlopen("libthr.so") 2015-01-03 18:38:46 +00:00
pathconf.2 General mdoc(7) and typo fixes. 2012-05-08 18:56:21 +00:00
pdfork.2 use .Mt to mark up email addresses consistently (part4) 2014-06-23 08:25:03 +00:00
pipe.2 Add some missing .Nm for newer syscalls in existing man pages. 2014-01-11 22:00:16 +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 Revert r288628 and instead fix a discrepancy between the posix_fadvise(2) 2015-10-03 22:27:14 +00:00
posix_fallocate.2 use .Mt to mark up email addresses consistently (part4) 2014-06-23 08:25:03 +00:00
posix_openpt.2 Escape "Ed" 2015-04-26 10:52:37 +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 Editing pass on procctl.2 2015-08-21 02:42:14 +00:00
profil.2
pselect.2 use .Mt to mark up email addresses consistently (part4) 2014-06-23 08:25:03 +00:00
pselect.c Fix known issues which blow up the process after dlopen("libthr.so") 2015-01-03 18:38:46 +00:00
ptrace.2 Document the recently added support for ptrace(2) LWP events. 2015-12-30 00:04:57 +00:00
quotactl.2 Remove trailing whitespace per mdoc lint warning 2012-03-29 05:02:12 +00:00
read.2 Remove sys/types.h due to STANDARDS and unistd.h also includes sys/types.h. 2015-12-15 15:19:06 +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
readv.c Add missing includes to eliminate -Wmissing-prototypes warnings 2015-09-20 03:45:57 +00:00
reboot.2 kenv(8) -> kenv(1) 2016-02-29 17:22:34 +00:00
recv.2 Add implementations of sendmmsg(3) and recvmmsg(3) functions which 2016-01-29 14:12:12 +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
revoke.2 Restore flushing of output for revoke(2) again. Document revoke()'s 2016-01-26 07:57:44 +00:00
rfork.2 Document RFTSIGZMB. Fix spelling of SIGCHLD. Note that signals are 2011-07-12 20:38:42 +00:00
rmdir.2
rtprio.2 use .Mt to mark up email addresses consistently (part4) 2014-06-23 08:25:03 +00:00
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 Remove the advertising clause from the Regents of the University of 2013-05-28 21:05:06 +00:00
sctp_generic_sendmsg.2 Remove the advertising clause from the Regents of the University of 2013-05-28 21:05:06 +00:00
sctp_peeloff.2 Remove the advertising clause from the Regents of the University of 2013-05-28 21:05:06 +00:00
select.2 Remove trailing whitespace per mdoc lint warning 2012-03-29 05:02:12 +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
semget.2 semget(2): Add missing [EINVAL] conditions. 2016-02-07 21:25:08 +00:00
semop.2
send.2 Add implementations of sendmmsg(3) and recvmmsg(3) functions which 2016-01-29 14:12:12 +00:00
sendfile.2 New sendfile(2) syscall. A joint effort of NGINX and Netflix from 2013 and 2016-01-08 20:34:57 +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 Fix known issues which blow up the process after dlopen("libthr.so") 2015-01-03 18:38:46 +00:00
setfib.2 Update the setfib man page to reflect recent changes. 2013-05-20 20:47:40 +00:00
setgroups.2
setpgid.2
setregid.2
setresuid.2 Remove useless comment. 2015-02-07 13:11:45 +00:00
setreuid.2
setsid.2
setuid.2 Remove sys/types.h due to STANDARDS and unistd.h also includes sys/types.h. 2015-12-15 15:08:29 +00:00
shm_open.2 use .Mt to mark up email addresses consistently (part4) 2014-06-23 08:25:03 +00:00
shmat.2
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
shutdown.2 Make shutdown() return ENOTCONN as required by POSIX, part deux. 2015-07-27 13:17:57 +00:00
sigaction.2 Update some signal man pages for multithreading. 2013-09-06 09:08:40 +00:00
sigaction.c Switch libc from using _sig{procmask,action,suspend} symbols, which 2015-08-29 14:25:01 +00:00
sigaltstack.2
sigpending.2 Update some signal man pages for multithreading. 2013-09-06 09:08:40 +00:00
sigprocmask.2
sigprocmask.c Switch libc from using _sig{procmask,action,suspend} symbols, which 2015-08-29 14:25:01 +00:00
sigqueue.2 sigqueue(2): Fix typo (EEPERM -> EPERM). 2013-02-10 13:20:23 +00:00
sigreturn.2 Update some signal man pages for multithreading. 2013-09-06 09:08:40 +00:00
sigstack.2
sigsuspend.2 sigsuspend(2): Add xrefs to pselect(2) and sigwait-alikes. 2013-08-15 22:33:27 +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 Update some signal man pages for multithreading. 2013-09-06 09:08:40 +00:00
sigwait.c Fix known issues which blow up the process after dlopen("libthr.so") 2015-01-03 18:38:46 +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 Catch up with many years of changes: 2014-06-24 20:23:18 +00:00
socketpair.2 Partially revert r255486, the first argument to socketpair() is a socket 2015-05-04 14:23:31 +00:00
stat.2 - Add the 'restrict' type qualifier to match function prototype. 2016-01-14 01:33:16 +00:00
statfs.2
swapcontext.c Fix known issues which blow up the process after dlopen("libthr.so") 2015-01-03 18:38:46 +00:00
swapon.2 The compile time constant limit on number of swap devices was removed in 5.2. 2013-12-25 16:01:29 +00:00
Symbol.map Remove Symbol.map entries for old AIO system calls for FreeBSD 6 compat. 2016-03-12 07:13:20 +00:00
symlink.2
sync.2 syncer(4) is a kernel process, not a user process 2014-02-27 04:06:34 +00:00
sysarch.2
syscall.2
timer_create.2 General mdoc(7) and typo fixes. 2012-05-08 18:56:21 +00:00
timer_delete.2 General mdoc(7) and typo fixes. 2012-05-08 18:56:21 +00:00
timer_settime.2 General mdoc(7) and typo fixes. 2012-05-08 18:56:21 +00:00
trivial-vdso_tc.c libc: Eliminate duplicate copies of __vdso_gettc.c 2015-04-02 21:18:11 +00:00
truncate.2 Various updates to the ftruncate(2) documentation: 2015-05-04 14:47:00 +00:00
umask.2
undelete.2
unlink.2 unlink(2): Note the possibility for ENOSPC to be returned on ZFS. 2015-07-28 22:48:58 +00:00
utimensat.2 utimensat(2): Correct description of [EINVAL] error. 2016-01-17 21:14:27 +00:00
utimensat.c Update futimens/utimensat for MFC to stable/10: 2016-01-12 20:53:57 +00:00
utimes.2 Note that most errors are possible for all syscalls from utimes(2) 2014-07-03 11:19:16 +00:00
utrace.2 mdoc: sort Xr 2016-01-18 20:21:38 +00:00
uuidgen.2
vfork.2 vfork() first appeared in 3BSD which pre-dates 2.9BSD. Verified via the 2015-04-06 20:40:01 +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 The si_status field of the siginfo_t, provided by the waitid(2) and 2015-07-18 09:02:50 +00:00
write.2 Remove sys/types.h due to STANDARDS and unistd.h also includes sys/types.h. 2015-12-15 15:19:06 +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