freebsd-skq/sys/sys
Pawel Jakub Dawidek 3a996d6e91 Do not allocate memory based on not-checked argument from userland.
It can be used to panic the kernel by giving too big value.
Fix it by moving allocation and size verification into kern_getfsstat().
This even simplifies kern_getfsstat() consumers, but destroys symmetry -
memory is allocated inside kern_getfsstat(), but has to be freed by the
caller.

Found by:	FreeBSD Kernel Stress Test Suite: http://www.holm.cc/stress/
Reported by:	Peter Holm <peter@holm.cc>
2005-06-11 14:58:20 +00:00
..
_iovec.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
_label.h Improve consistency of include file guards in src/sys/sys by terminating 2004-05-10 18:38:07 +00:00
_lock.h Include <sys/_lock.h>'s prerequisite <sys/queue.h> before including the 2004-06-19 14:58:35 +00:00
_mutex.h Add some basic support for measuring sleep mutex contention to the 2004-01-25 01:59:27 +00:00
_null.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
_pthreadtypes.h According to: 2005-05-31 15:18:17 +00:00
_semaphore.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
_sigset.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
_task.h o eliminate modification of task structures after their run to avoid 2005-04-24 16:52:45 +00:00
_timespec.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
_timeval.h
_types.h - Declare mknod in stat.h (in addition to unistd.h), as per XSI. 2005-03-22 01:19:18 +00:00
aac_ioctl.h Do some small cleanups to comments and remove AACQ_COMPLETE definitions since 2004-02-07 17:40:38 +00:00
acct.h Second half of the dev_t cleanup. 2004-06-17 17:16:53 +00:00
acl.h Remove unimplemented ACL types. 2005-05-12 22:01:18 +00:00
agpio.h
aio.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
alq.h Modify the alq(9) alq_open() API to accept a file creation mode, rather 2005-04-16 12:12:27 +00:00
assym.h These are changes to allow to use the Intel C/C++ compiler (lang/icc) 2004-03-12 21:45:33 +00:00
ata.h Change the way ioctls are issue to ATA. 2005-05-16 13:07:27 +00:00
bio.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
bitstring.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
blist.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
buf.h Fix a serious deadlock with the NFS client. Given a large enough 2005-06-10 23:50:41 +00:00
bufobj.h Fix a serious deadlock with the NFS client. Given a large enough 2005-06-10 23:50:41 +00:00
bus_dma.h fix arm wrt to busdma... 2005-03-15 14:57:30 +00:00
bus.h resource_list_purge: release the resources in this list, and purge the 2005-04-12 15:20:36 +00:00
callout.h Add a mechanism for associating a mutex with a callout when the 2005-02-07 02:47:33 +00:00
cdefs.h Use predefined __offsetof__ builtin function when compiling C++ sources. 2005-06-03 17:53:36 +00:00
cdio.h Boot away another stackgap (one of the lest ones in linuxlator/i386) by 2005-01-30 08:12:37 +00:00
cdrio.h
chio.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
clist.h Remove advertising clause from University of California Regent's license, 2004-04-07 04:19:52 +00:00
clock.h
condvar.h Name the pri argument to cv_broadcastpri() to match the existing style of 2004-05-05 21:57:44 +00:00
conf.h cdev (still) needs per instance uid/gid/mode 2005-03-31 10:29:57 +00:00
cons.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
consio.h Remove the ADJUST_CLOCK ioctl on pc98. It's not used at all. 2005-05-15 07:35:49 +00:00
copyright.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
cpu.h Add a new field to struct cf_setting for special values. These are driver- 2005-02-19 06:13:26 +00:00
ctype.h Remove advertising clause from University of California Regent's license, 2004-04-07 04:19:52 +00:00
dataacq.h
device_port.h Remove code for pre-4.0 versions of FreeBSD. It is there in prior 2005-01-19 01:31:33 +00:00
devicestat.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
digiio.h
dir.h netchild's mega-patch to isolate compiler dependencies into a central 2005-03-02 21:33:29 +00:00
dirent.h Remove advertising clause from University of California Regent's license, 2004-04-07 04:19:52 +00:00
disk.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
disklabel.h Treat arm as i386. 2005-04-07 22:09:02 +00:00
diskmbr.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
diskpc98.h Change DOSPTYP_386BSD to 0xc494. 2005-05-08 11:30:26 +00:00
dkstat.h Remove advertising clause from University of California Regent's license, 2004-04-07 04:19:52 +00:00
domain.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
dvdio.h
elf32.h
elf64.h
elf_common.h Fix typo (in comment): s/IA-46/IA-64/ 2004-05-05 02:38:54 +00:00
elf_generic.h
endian.h
errno.h Add some missing errnos from POSIX. Nothing in FreeBSD generates 2005-04-02 12:33:28 +00:00
eui64.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
event.h Allow EVFILT_VNODE events to work on every filesystem type, not just 2005-06-09 20:20:31 +00:00
eventhandler.h Use 'const char *' for a few prototypes. 2004-12-06 10:53:40 +00:00
eventvar.h Add locking to the kqueue subsystem. This also makes the kqueue subsystem 2004-08-15 06:24:42 +00:00
exec.h Make ps_nargvstr and ps_nenvstr unsigned. This fixes an input 2005-03-23 08:27:59 +00:00
extattr.h
fbio.h Grab FBTYPE_NOTSUN3 and use it for FBTYPE_PCIMISC. The value matches 2005-05-21 20:40:51 +00:00
fcntl.h Remove advertising clause from University of California Regent's license, 2004-04-07 04:19:52 +00:00
fdcio.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
file.h Make some file/filedesc related functions static 2005-02-10 12:27:58 +00:00
filedesc.h Make some file/filedesc related functions static 2005-02-10 12:27:58 +00:00
filio.h Add ioctl to ask DEVFS about the name of device. 2005-03-08 21:32:19 +00:00
fnv_hash.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
gmon.h Add prototypes for the userland gmon support functions, which normally 2004-06-14 18:39:28 +00:00
gpt.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
iconv.h Fix kiconv on the 64bit plathomes. 2005-05-24 15:38:08 +00:00
imgact_aout.h Capitalize at the start of sentence. 2005-05-08 02:20:10 +00:00
imgact_elf.h Add __elfN(dump_thread). This function is called from __elfN(coredump) 2004-08-11 02:35:06 +00:00
imgact.h Welcome to the 21st century: increase MAXSHELLCMDLEN from 128 bytes to 2005-02-25 11:49:42 +00:00
inflate.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
interrupt.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
ioccom.h Remove advertising clause from University of California Regent's license, 2004-04-07 04:19:52 +00:00
ioctl_compat.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
ioctl.h netchild's mega-patch to isolate compiler dependencies into a central 2005-03-02 21:33:29 +00:00
ipc.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
jail.h Rename sysctl security.jail.getfsstatroot_only to security.jail.enforce_statfs 2005-06-09 18:49:19 +00:00
joystick.h Comment typo. 2005-01-07 19:31:43 +00:00
kbio.h
kdb.h Don't enter the debugger if KDB_UNATTENDED is set or if 2005-04-20 20:52:46 +00:00
kenv.h
kernel.h Use __CONCAT() in the TUNABLE_ macros, this way we don't have to use 3 2005-04-17 15:08:34 +00:00
kerneldump.h
kobj.h
kse.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
ksem.h Introduce MAC Framework and MAC Policy entry points to label and control 2005-05-04 10:39:15 +00:00
kthread.h
ktr.h - Replace the unused KTR_NFS with KTR_VFS. KTR_VFS differs from KTR_VOP 2005-06-11 00:40:27 +00:00
ktrace.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
libkern.h Inline functions belong in <sys/libkern.h>, not in <sys/systm.h>. 2005-04-28 03:19:50 +00:00
limits.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
linedisc.h Fix line discipline switching issues: If opening a new ldisc fails, 2004-06-26 08:44:04 +00:00
link_aout.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
link_elf.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
linker_set.h netchild's mega-patch to isolate compiler dependencies into a central 2005-03-02 21:33:29 +00:00
linker.h Add a new module information type MODINFOMD_SHDR that will be used 2004-08-27 01:10:16 +00:00
lock.h - Define LOP_DUPOK in lock.h so that we may pass it to individual 2005-04-22 22:37:41 +00:00
lockf.h - Make lf_print static and move its prototype into kern_lockf.c 2005-01-25 10:15:26 +00:00
lockmgr.h - Add a LK_NOSHARE flag which forces all shared lock requests to be 2005-03-31 05:18:19 +00:00
mac_policy.h Gratuitous renaming of four System V Semaphore MAC Framework entry 2005-06-07 05:03:28 +00:00
mac.h Gratuitous renaming of four System V Semaphore MAC Framework entry 2005-06-07 05:03:28 +00:00
malloc.h Due to a last minute change in the #ifdefing in malloc.h before committing, 2005-05-29 17:27:52 +00:00
mbpool.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
mbuf.h Change m_uiotombuf so it will accept offset at which data should be copied 2005-05-04 18:55:03 +00:00
mchain.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
md4.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
md5.h MD5Pad() should never have been exposed. 2005-02-10 12:20:42 +00:00
mdioctl.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
memrange.h Fix module builds for i386 and amd64. 2004-08-04 18:30:31 +00:00
mman.h Namespace issues. 2005-04-02 12:33:31 +00:00
module.h Give kldunload a -f(orce) argument. 2004-07-13 19:36:59 +00:00
mount.h Allow EVFILT_VNODE events to work on every filesystem type, not just 2005-06-09 20:20:31 +00:00
mouse.h Support for the GTCO Digipad. 2005-04-13 07:25:45 +00:00
msg.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
msgbuf.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
mtio.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
mutex.h - Define LOP_DUPOK in lock.h so that we may pass it to individual 2005-04-22 22:37:41 +00:00
namei.h - Add an ISOPEN flag that filesystems can use to determine if a namei() 2005-04-27 09:00:47 +00:00
nlist_aout.h Remove advertising clause from University of California Regent's license, 2004-04-07 04:19:52 +00:00
param.h Stop embedding struct ifnet at the top of driver softcs. Instead the 2005-06-10 16:49:24 +00:00
pciio.h
pcpu.h Drop the CURPROC, curkse, and curksegrp aliases as they aren't used 2005-04-26 17:07:40 +00:00
pioctl.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
pipe.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
pmc.h MFP4: 2005-06-09 19:45:09 +00:00
pmckern.h MFP4: 2005-06-09 19:45:09 +00:00
pmclog.h MFP4: 2005-06-09 19:45:09 +00:00
poll.h
posix4.h
power.h
priority.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
proc.h Use the proc mtx to prevent simultaneous changes to p_aioinfo. 2005-05-30 19:33:33 +00:00
procfs.h type prgregset_t really should be an array. this is odd, however, other 2004-07-15 03:52:17 +00:00
protosw.h Initialize struct pr_userreqs in new/sparse style and fill in common 2004-11-08 14:44:54 +00:00
ptio.h
ptrace.h Add PROC_UNLOCK(p) to PTRACESTOP_SC(p, td, flag). This is necessary 2005-04-29 22:38:02 +00:00
queue.h netchild's mega-patch to isolate compiler dependencies into a central 2005-03-02 21:33:29 +00:00
random.h Add a note ahea of the esource enum that if new entropy source 2004-10-12 14:55:59 +00:00
reboot.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
regression.h Improve consistency of include file guards in src/sys/sys by terminating 2004-05-10 18:38:07 +00:00
resource.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
resourcevar.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
rman.h rman_set_device() seems to have been omitted by mistake. Implement it. 2005-04-12 06:21:59 +00:00
rtprio.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
runq.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
sbuf.h Have sbuf_bcat() and sbuf_bcpy() take a const void * instead of a 2004-07-09 11:35:30 +00:00
sched.h Bring a working snapshot of hwpmc(4), its associated libraries, userland utilities 2005-04-19 04:01:25 +00:00
select.h Remove advertising clause from University of California Regent's license, 2004-04-07 04:19:52 +00:00
selinfo.h Add locking to the kqueue subsystem. This also makes the kqueue subsystem 2004-08-15 06:24:42 +00:00
sem.h In the kernel-only portionss of System V IPC objects (messages, 2004-11-17 13:12:06 +00:00
sema.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
semaphore.h The sem_timedwait() and ksem_timedwait() functions both 2004-02-03 22:27:03 +00:00
serial.h Make the relationship between modem control bits and their delta cousins 2004-06-25 10:56:43 +00:00
sf_buf.h Introduce two new options, "CPU private" and "no wait", to sf_buf_alloc(). 2004-11-08 00:43:46 +00:00
shm.h This header is supposed to declare pid_t, size_t, and time_t. 2005-04-02 12:33:36 +00:00
sigio.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
signal.h Make this look less dubious :-) 2004-06-11 11:43:46 +00:00
signalvar.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
sleepqueue.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
smp.h Implement an alternate method to stop CPUs when entering DDB. Normally we use 2005-04-30 20:01:00 +00:00
snoop.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
socket.h Implement unix(4) socket options LOCAL_CREDS and LOCAL_CONNWAIT. 2005-04-13 00:01:46 +00:00
socketvar.h Move the logic implementing retrieval of the SO_ACCEPTFILTER socket option 2005-03-12 12:57:18 +00:00
sockio.h Add hooks into the networking layer to support if_bridge. This changes struct 2005-06-05 03:13:13 +00:00
soundcard.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
stat.h - Declare mknod in stat.h (in addition to unistd.h), as per XSI. 2005-03-22 01:19:18 +00:00
statvfs.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
stddef.h Change the definition of NULL on ia64 (for LP64 compilations) from 2003-12-07 21:10:06 +00:00
stdint.h
sun_disklabel.h Support VTOC volume names. This can be useful to distinguish multiple 2005-03-30 09:33:10 +00:00
sx.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
syscall.h Rebuild generated system call definition files following the addition of 2005-05-30 15:20:21 +00:00
syscall.mk Rebuild generated system call definition files following the addition of 2005-05-30 15:20:21 +00:00
syscallsubr.h Do not allocate memory based on not-checked argument from userland. 2005-06-11 14:58:20 +00:00
sysctl.h Add a sysctl that returns the full path of a process' text file. 2005-04-18 02:10:37 +00:00
sysent.h Add a new field, sy_auevent, to the system call entry description 2005-05-29 20:08:39 +00:00
syslimits.h netchild's mega-patch to isolate compiler dependencies into a central 2005-03-02 21:33:29 +00:00
syslog.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
sysproto.h Rebuild generated system call definition files following the addition of 2005-05-30 15:20:21 +00:00
systm.h Inline functions belong in <sys/libkern.h>, not in <sys/systm.h>. 2005-04-28 03:19:50 +00:00
taskqueue.h o enable shutdown of taskqueue threads; the thread servicing the queue checks 2005-05-01 00:38:11 +00:00
termios.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
thr.h Add new syscall thr_new to create thread in atomic, it will 2005-04-23 02:36:07 +00:00
tiio.h
time.h Define CLOCK_* and TIMER_* in time.h, where they are supposed to be. 2005-04-02 12:33:27 +00:00
timeb.h Remove advertising clause from University of California Regent's license, 2004-04-07 04:19:52 +00:00
timepps.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
timers.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
times.h Remove advertising clause from University of California Regent's license, 2004-04-07 04:19:52 +00:00
timespec.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
timetc.h
timex.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
tree.h Make the default RB_AUGMENT() produce a 'do {} while (0)' instead 2005-06-10 11:44:57 +00:00
tty.h Add new function ttyinitmode() which sets our systemwide default 2004-10-18 21:51:27 +00:00
ttychars.h Put the pre FreeBSD-2.x tty compat code under BURN_BRIDGES. 2004-06-21 22:57:16 +00:00
ttycom.h Retire the TIOC_REMOTE ioctl. 2004-06-25 21:54:49 +00:00
ttydefaults.h Restore TTYDEF_LFLAG to set echo bits. 2004-11-03 19:16:55 +00:00
ttydev.h Put the pre FreeBSD-2.x tty compat code under BURN_BRIDGES. 2004-06-21 22:57:16 +00:00
turnstile.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
types.h According to: 2005-05-31 15:18:17 +00:00
ucontext.h Change the clear_ret argument of get_mcontext() to be a flags argument. 2003-11-09 20:31:04 +00:00
ucred.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
uio.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
umtx.h Allocate umtx_q from heap instead of stack, this avoids 2005-03-05 09:15:03 +00:00
un.h Implement unix(4) socket options LOCAL_CREDS and LOCAL_CONNWAIT. 2005-04-13 00:01:46 +00:00
unistd.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
unpcb.h Implement unix(4) socket options LOCAL_CREDS and LOCAL_CONNWAIT. 2005-04-13 00:01:46 +00:00
user.h Re-arrange some variables in kinfo_proc, and add more spare room. This 2005-06-09 19:09:02 +00:00
utsname.h Remove advertising clause from University of California Regent's license, 2004-04-07 04:19:52 +00:00
uuid.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
vmmeter.h Remove remnants of PGINPROF. 2004-06-08 10:37:30 +00:00
vnode.h Allow EVFILT_VNODE events to work on every filesystem type, not just 2005-06-09 20:20:31 +00:00
wait.h - Move the function prototypes for kern_setrlimit() and kern_wait() to 2005-01-05 22:19:44 +00:00
watchdog.h Add a generic watchdog facility which through a single device entry 2004-02-28 20:06:59 +00:00
xrpuio.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00