1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-16 10:20:30 +00:00
freebsd/sys/kern
Alfred Perlstein c636255150 fix races in the uidinfo subsystem, several problems existed:
1) while allocating a uidinfo struct malloc is called with M_WAITOK,
   it's possible that while asleep another process by the same user
   could have woken up earlier and inserted an entry into the uid
   hash table.  Having redundant entries causes inconsistancies that
   we can't handle.

   fix: do a non-waiting malloc, and if that fails then do a blocking
   malloc, after waking up check that no one else has inserted an entry
   for us already.

2) Because many checks for sbsize were done as "test then set" in a non
   atomic manner it was possible to exceed the limits put up via races.

   fix: instead of querying the count then setting, we just attempt to
   set the count and leave it up to the function to return success or
   failure.

3) The uidinfo code was inlining and repeating, lookups and insertions
   and deletions needed to be in their own functions for clarity.

Reviewed by: green
2000-06-22 22:27:16 +00:00
..
bus_if.m
device_if.m
genassym.sh Use "nm | awk ..." instead of genassym(1) to generate symbol value headers. 2000-06-02 09:27:48 +00:00
imgact_aout.c Remove ~25 unneeded #include <sys/conf.h> 2000-04-19 14:58:28 +00:00
imgact_elf.c Remove unneeded #include <vm/vm_zone.h> 2000-04-30 18:52:11 +00:00
imgact_gzip.c
imgact_shell.c Fix #! script exec under linux emulation. If a script is exec'd from a 2000-04-26 20:58:40 +00:00
inflate.c
init_main.c fix races in the uidinfo subsystem, several problems existed: 2000-06-22 22:27:16 +00:00
init_sysent.c Second of two commits adding capability manipulation syscalls for 2000-06-15 23:27:18 +00:00
kern_accf.c return of the accept filter part II 2000-06-20 01:09:23 +00:00
kern_acct.c Remove unneeded #include <vm/vm_zone.h> 2000-04-30 18:52:11 +00:00
kern_acl.c Remove unneeded #include <vm/vm_zone.h> 2000-04-30 18:52:11 +00:00
kern_cap.c Introduce additional POSIX.1e-related stubs 2000-06-07 04:53:49 +00:00
kern_clock.c Remove ~25 unneeded #include <sys/conf.h> 2000-04-19 14:58:28 +00:00
kern_conf.c Back out the previous change to the queue(3) interface. 2000-05-26 02:09:24 +00:00
kern_descrip.c Back out the previous change to the queue(3) interface. 2000-05-26 02:09:24 +00:00
kern_environment.c
kern_event.c Add code so that the udata field is preserved across a TRACK event. 2000-06-22 18:39:31 +00:00
kern_exec.c Remove unneeded #include <vm/vm_zone.h> 2000-04-30 18:52:11 +00:00
kern_exit.c fix races in the uidinfo subsystem, several problems existed: 2000-06-22 22:27:16 +00:00
kern_fork.c fix races in the uidinfo subsystem, several problems existed: 2000-06-22 22:27:16 +00:00
kern_intr.c
kern_jail.c o Modify jail to limit creation of sockets to UNIX domain sockets, 2000-06-04 04:28:31 +00:00
kern_kthread.c
kern_ktrace.c Remove unneeded #include <vm/vm_zone.h> 2000-04-30 18:52:11 +00:00
kern_linker.c Back out the previous change to the queue(3) interface. 2000-05-26 02:09:24 +00:00
kern_lock.c
kern_lockf.c
kern_malloc.c sys/malloc.h: 2000-06-14 18:31:42 +00:00
kern_mib.c Dammit. 2000-06-07 18:54:41 +00:00
kern_module.c Back out the previous change to the queue(3) interface. 2000-05-26 02:09:24 +00:00
kern_ntptime.c
kern_physio.c Separate the struct bio related stuff out of <sys/buf.h> into 2000-05-05 09:59:14 +00:00
kern_proc.c fix races in the uidinfo subsystem, several problems existed: 2000-06-22 22:27:16 +00:00
kern_prot.c fix races in the uidinfo subsystem, several problems existed: 2000-06-22 22:27:16 +00:00
kern_random.c Sort the sys includes. 2000-05-22 17:09:13 +00:00
kern_resource.c fix a typo 2000-06-10 19:21:20 +00:00
kern_shutdown.c Separate the struct bio related stuff out of <sys/buf.h> into 2000-05-05 09:59:14 +00:00
kern_sig.c Back out the previous change to the queue(3) interface. 2000-05-26 02:09:24 +00:00
kern_subr.c Back out the previous change to the queue(3) interface. 2000-05-26 02:09:24 +00:00
kern_switch.c
kern_synch.c Back out the previous change to the queue(3) interface. 2000-05-26 02:09:24 +00:00
kern_syscalls.c
kern_sysctl.c Back out the previous change to the queue(3) interface. 2000-05-26 02:09:24 +00:00
kern_tc.c
kern_threads.c
kern_time.c Remove unneeded <sys/buf.h> includes. 2000-04-18 15:15:39 +00:00
kern_timeout.c
kern_xxx.c
ksched.c Remove unneeded #include <sys/kernel.h> 2000-04-29 15:36:14 +00:00
link_aout.c Remove unneeded #include <vm/vm_zone.h> 2000-04-30 18:52:11 +00:00
link_elf_obj.c Remove unneeded #include <vm/vm_zone.h> 2000-04-30 18:52:11 +00:00
link_elf.c Remove unneeded #include <vm/vm_zone.h> 2000-04-30 18:52:11 +00:00
linker_if.m First round implementation of a fine grain enhanced module to module 2000-04-29 13:19:31 +00:00
Make.tags.inc
makedevops.pl
Makefile
makeobjops.pl
makesyscalls.sh Fixed the calculation of sy_nargs in sysent tables. We attempted to do 2000-05-09 21:18:30 +00:00
md5c.c
p1003_1b.c Add $FreeBSD$ 2000-05-01 20:32:07 +00:00
posix4_mib.c Add $FreeBSD$. 2000-04-22 15:13:06 +00:00
subr_acl_posix1e.c Remove unneeded #include <vm/vm_zone.h> 2000-04-30 18:52:11 +00:00
subr_autoconf.c Back out the previous change to the queue(3) interface. 2000-05-26 02:09:24 +00:00
subr_blist.c
subr_bus.c As a bit of a gross hack, allow earlier access to both the static and 2000-06-15 09:57:20 +00:00
subr_clist.c
subr_devstat.c Back out the previous change to the queue(3) interface. 2000-05-26 02:09:24 +00:00
subr_disk.c Add 'kern.disks', a sysctl which returns the list of disks from 2000-06-22 11:44:43 +00:00
subr_disklabel.c Separate the struct bio related stuff out of <sys/buf.h> into 2000-05-05 09:59:14 +00:00
subr_diskmbr.c Separate the struct bio related stuff out of <sys/buf.h> into 2000-05-05 09:59:14 +00:00
subr_diskslice.c Separate the struct bio related stuff out of <sys/buf.h> into 2000-05-05 09:59:14 +00:00
subr_eventhandler.c Back out the previous change to the queue(3) interface. 2000-05-26 02:09:24 +00:00
subr_kobj.c * Move the driver_t::refs field to kobj_t to replace kobj_t::instances. 2000-05-01 10:45:15 +00:00
subr_log.c
subr_module.c
subr_param.c Move the MSG* and SEM* options to opt_sysvipc.h 2000-05-01 13:33:56 +00:00
subr_prf.c Do not fault if curproc is null. 2000-04-29 11:32:15 +00:00
subr_prof.c
subr_rman.c Replace all the ifdef debugging spaghetti with a single ifdef and 2000-05-03 00:20:36 +00:00
subr_scanf.c
subr_smp.c Further fixes for multiple-IO-APIC systems from Tor Egge: 2000-05-31 21:37:28 +00:00
subr_taskqueue.c Add taskqueue system for easy-to-use SWIs among other things. 2000-05-28 15:45:30 +00:00
subr_trap.c
subr_xxx.c
sys_generic.c unstatic getfp() so that other subsystems can use it. 2000-06-12 18:06:12 +00:00
sys_pipe.c Back out the previous change to the queue(3) interface. 2000-05-26 02:09:24 +00:00
sys_process.c
sys_socket.c Include the UID and GID values filled in by socreate() into socket->so_cred 2000-05-11 22:08:57 +00:00
syscalls.c Second of two commits adding capability manipulation syscalls for 2000-06-15 23:27:18 +00:00
syscalls.master Introduce syscalls for process capability manipulation. Currently backs 2000-06-15 23:08:17 +00:00
sysv_ipc.c Remove the undocumented, flawed, broken-as-designed semconfig() syscall. 2000-05-01 11:13:41 +00:00
sysv_msg.c Move the MSG* and SEM* options to opt_sysvipc.h 2000-05-01 13:33:56 +00:00
sysv_sem.c Move the MSG* and SEM* options to opt_sysvipc.h 2000-05-01 13:33:56 +00:00
sysv_shm.c This is a cleanup patch to Peter's new OBJT_PHYS VM object type 2000-05-29 22:40:54 +00:00
tty_compat.c
tty_conf.c
tty_cons.c
tty_pty.c Unused include: #include "pty.h" 2000-06-10 07:12:40 +00:00
tty_snoop.c
tty_subr.c
tty_tty.c
tty.c Back out the previous change to the queue(3) interface. 2000-05-26 02:09:24 +00:00
uipc_accf.c return of the accept filter part II 2000-06-20 01:09:23 +00:00
uipc_domain.c
uipc_mbuf.c
uipc_proto.c
uipc_sockbuf.c fix races in the uidinfo subsystem, several problems existed: 2000-06-22 22:27:16 +00:00
uipc_socket2.c fix races in the uidinfo subsystem, several problems existed: 2000-06-22 22:27:16 +00:00
uipc_socket.c fix races in the uidinfo subsystem, several problems existed: 2000-06-22 22:27:16 +00:00
uipc_syscalls.c unstatic getfp() so that other subsystems can use it. 2000-06-12 18:06:12 +00:00
uipc_usrreq.c fix races in the uidinfo subsystem, several problems existed: 2000-06-22 22:27:16 +00:00
vfs_acl.c Remove unneeded #include <vm/vm_zone.h> 2000-04-30 18:52:11 +00:00
vfs_aio.c Back out the previous change to the queue(3) interface. 2000-05-26 02:09:24 +00:00
vfs_bio.c Virtualizes & untangles the bioops operations vector. 2000-06-16 08:48:51 +00:00
vfs_cache.c Back out the previous change to the queue(3) interface. 2000-05-26 02:09:24 +00:00
vfs_cluster.c Virtualizes & untangles the bioops operations vector. 2000-06-16 08:48:51 +00:00
vfs_conf.c Make a trip to Pointy-Hats-R-Us and actually include the header that 2000-05-22 17:25:47 +00:00
vfs_default.c Separate the struct bio related stuff out of <sys/buf.h> into 2000-05-05 09:59:14 +00:00
vfs_export.c Virtualizes & untangles the bioops operations vector. 2000-06-16 08:48:51 +00:00
vfs_extattr.c Revert part of my bioops change which implemented panic(8). 2000-06-16 14:32:13 +00:00
vfs_init.c
vfs_lookup.c
vfs_mount.c Make a trip to Pointy-Hats-R-Us and actually include the header that 2000-05-22 17:25:47 +00:00
vfs_subr.c Virtualizes & untangles the bioops operations vector. 2000-06-16 08:48:51 +00:00
vfs_syscalls.c Revert part of my bioops change which implemented panic(8). 2000-06-16 14:32:13 +00:00
vfs_vnops.c Add a hack to fail registration of kq events on a non-ufs filesystem, as 2000-06-22 18:41:07 +00:00
vnode_if.pl
vnode_if.src