freebsd-dev/sys/alpha/osf1
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
..
exec_ecoff.h Begin all license/copyright comments with /*- or #- 2005-01-05 20:05:52 +00:00
imgact_osf1.c - Change the vm_mmap() function to accept an objtype_t parameter specifying 2005-04-01 20:00:11 +00:00
Makefile
osf1_ioctl.c Begin all license/copyright comments with /*- or #- 2005-01-05 20:05:52 +00:00
osf1_misc.c - Change the vm_mmap() function to accept an objtype_t parameter specifying 2005-04-01 20:00:11 +00:00
osf1_mount.c Do not allocate memory based on not-checked argument from userland. 2005-06-11 14:58:20 +00:00
osf1_proto.h Rebuild generated system call definition files following the addition of 2005-05-30 15:20:21 +00:00
osf1_signal.c Backout previous change (disabling of security checks for signals delivered 2005-02-13 17:37:20 +00:00
osf1_signal.h Remove __P(). This was tested on the GENERIC kernel. 2002-03-20 18:58:47 +00:00
osf1_syscall.h Rebuild generated system call definition files following the addition of 2005-05-30 15:20:21 +00:00
osf1_sysent.c Rebuild generated system call definition files following the addition of 2005-05-30 15:20:21 +00:00
osf1_sysvec.c o Split out kernel part of execve(2) syscall into two parts: one that 2005-01-29 23:12:00 +00:00
osf1_util.h - Implement osf1_emul_find() using kern_alternate_path(). This changes 2005-02-18 18:37:26 +00:00
osf1.h Begin all license/copyright comments with /*- or #- 2005-01-05 20:05:52 +00:00
README.mach-traps
syscalls.conf GC unused 'syshide' override to /dev/null. This was here to disable 2003-12-24 00:32:07 +00:00
syscalls.master Introduce a new field in the syscalls.master file format to hold the 2005-05-30 15:09:18 +00:00

$NetBSD: README.mach-traps,v 1.2 1999/03/23 09:19:25 itohy Exp $
$FreeBSD$

Some Alpha AXP OSF/1 binaries directly use the facilities provided by
the Mach kernel that is the basis for OSF/1.  These include (but are
surely not limited to) 'dd', 'ps', and 'w'.

Invariably, the symptom that these binaries display is that they crash
with an "unimplemented system call" trap (SIGSYS signal) for a syscall
that has a negative number.  In general, binaries that use the Mach
syscalls appear to invoke task_self() as their first syscall.

The name, number, and number of arguments for each Mach syscall is
given below; this information was gleaned by looking through the OSF/1
libmach.a's object files with dbx, then double-checked against the
contents of OSF/1's <mach/syscall_sw.h>.

These calls would be very difficult to implement properly in the
OSF/1 emulation code; by its very nature, NetBSD is not Mach, and we
don't and can't provide the underlying facilities that it does.

-- cgd

trap name			number	nargs	notes
---- ----			------	-----	-----
task_self			-10	0
thread_reply			-11	0
task_notify			-12	0
thread_self			-13	0
msg_send_old			-14	3
msg_receive_old			-15	3
msg_rpc_old			-16	5
msg_send_trap			-20	4
msg_receive_trap		-21	5
msg_rpc_trap			-22	6
lw_wire				-30	3
lw_unwire			-31	1
nxm_task_init			-33	2
nxm_sched_thread		-34	1
nxm_idle			-35	1
nxm_wakeup_idle			-36	1
nxm_set_pthid			-37	2
nxm_thread_kill			-38	2
nxm_thread_block		-39	1
nxm_thread_wakeup		-40	1
inode_swap_preference		-40	3	old call?
init_process			-41	0
map_fd				-43	5
nxm_resched			-44	2
htg_unix_syscall		-52	3
host_self			-55	1
host_priv_self			-56	1
swtch_pri			-59	1
swtch				-60	0
thread_switch			-61	3
semop_fast			-62	4
mach_sctimes_0			-70	0	only if MACH_SCTIMES defined
mach_sctimes_1			-71	1	only if MACH_SCTIMES defined
mach_sctimes_2			-72	2	only if MACH_SCTIMES defined
mach_sctimes_3			-73	3	only if MACH_SCTIMES defined
mach_sctimes_4			-74	4	only if MACH_SCTIMES defined
mach_sctimes_5			-75	5	only if MACH_SCTIMES defined
mach_sctimes_6			-76	6	only if MACH_SCTIMES defined
mach_sctimes_7			-77	0	only if MACH_SCTIMES defined
mach_sctimes_8			-78	6	only if MACH_SCTIMES defined
mach_sctimes_9			-79	1	only if MACH_SCTIMES defined
mach_sctimes_10			-80	2	only if MACH_SCTIMES defined
mach_sctimes_11			-81	2	only if MACH_SCTIMES defined
mach_sctimes_port_alloc_dealloc	-82	1	only if MACH_SCTIMES defined