freebsd-dev/sys/kern
John Baldwin ecd8246189 If vn_open() fails during kern_open(), don't fdrop() the new file object
until after the call to fdclose().  This closes an obscure race that
could result in the later call to fdclose() actually closing a different
file descriptor if another thread close()'s the file descriptor being
opened before fdrop() is called, so the fdrop() in kern_open() frees the
file object, then the second thread (or a third) creates a new file
descriptor which reuses both the same index and the same file pointer
thus tricking fdclose() in the first thread into thinking that the
original file was still open.

MFC after:	1 week
2007-03-21 19:32:08 +00:00
..
bus_if.m o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
clock_if.m
cpufreq_if.m
device_if.m
genassym.sh
imgact_aout.c
imgact_elf32.c
imgact_elf64.c
imgact_elf.c Use FOREACH_PROC_IN_SYSTEM instead of using its unrolled form. 2007-01-17 14:58:53 +00:00
imgact_gzip.c
imgact_shell.c
inflate.c
init_main.c - Remove setrunqueue and replace it with direct calls to sched_add(). 2007-01-23 08:46:51 +00:00
init_sysent.c This commits the remake in kern/ make sysent to get 2006-11-03 18:57:49 +00:00
kern_acct.c Use sx_sleep() in the main loop of the accounting kthread. 2007-03-09 23:29:31 +00:00
kern_alq.c Backout rev 1.17, msleep() can't be used with a spinlock. 2007-03-06 12:08:38 +00:00
kern_clock.c Instead of doing comparisons using the pcpu area to see if 2007-03-08 06:44:34 +00:00
kern_condvar.c Add second sleep queue so that sx and lockmgr can have separate sleep 2006-12-16 06:54:09 +00:00
kern_conf.c Use int instead of u_int for the 'extra' argument to the 2007-02-02 22:27:45 +00:00
kern_context.c Further system call comment cleanup: 2007-03-05 13:10:58 +00:00
kern_cpu.c
kern_descrip.c Just use 'fdrop()' instead of 'FILE_LOCK(); fdrop_locked()' in 2007-03-15 21:19:21 +00:00
kern_environment.c Further system call comment cleanup: 2007-03-05 13:10:58 +00:00
kern_event.c Remove 'MPSAFE' annotations from the comments above most system calls: all 2007-03-04 22:36:48 +00:00
kern_exec.c Further system call comment cleanup: 2007-03-05 13:10:58 +00:00
kern_exit.c Further system call comment cleanup: 2007-03-05 13:10:58 +00:00
kern_fork.c Remove 'MPSAFE' annotations from the comments above most system calls: all 2007-03-04 22:36:48 +00:00
kern_idle.c - Remove setrunqueue and replace it with direct calls to sched_add(). 2007-01-23 08:46:51 +00:00
kern_intr.c - Don't do the interrupt storm protection stuff for software interrupt 2007-03-02 17:01:45 +00:00
kern_jail.c Minor simplification. 2007-03-09 05:22:10 +00:00
kern_kse.c After the last change to KSE threading a bug was introduced where 2007-03-07 20:17:41 +00:00
kern_kthread.c - Remove setrunqueue and replace it with direct calls to sched_add(). 2007-01-23 08:46:51 +00:00
kern_ktr.c Remove slightly oddly placed suser() call from the KTR/ALQ setup sysctl: 2006-09-09 16:09:01 +00:00
kern_ktrace.c Further system call comment cleanup: 2007-03-05 13:10:58 +00:00
kern_linker.c Remove 'MPSAFE' annotations from the comments above most system calls: all 2007-03-04 22:36:48 +00:00
kern_lock.c Handle the case when a thread is blocked on a lockmgr lock with LK_DRAIN 2007-03-21 19:28:20 +00:00
kern_lockf.c
kern_malloc.c Increase usefulness of "show malloc" by moving from displaying the basic 2006-10-26 10:17:13 +00:00
kern_mbuf.c Fix for problems that occur when all mbuf clusters migrate to the mbuf packet 2007-01-25 01:05:23 +00:00
kern_mib.c
kern_module.c Remove 'MPSAFE' annotations from the comments above most system calls: all 2007-03-04 22:36:48 +00:00
kern_mtxpool.c
kern_mutex.c Add two new function pointers 'lc_lock' and 'lc_unlock' to lock classes. 2007-03-09 16:27:11 +00:00
kern_ntptime.c Further system call comment cleanup: 2007-03-05 13:10:58 +00:00
kern_physio.c
kern_pmc.c
kern_poll.c Threading cleanup.. part 2 of several. 2006-12-06 06:34:57 +00:00
kern_priv.c Add a new priv(9) kernel interface for checking the availability of 2006-11-06 13:37:19 +00:00
kern_proc.c Threading cleanup.. part 2 of several. 2006-12-06 06:34:57 +00:00
kern_prot.c Further system call comment cleanup: 2007-03-05 13:10:58 +00:00
kern_resource.c Further system call comment cleanup: 2007-03-05 13:10:58 +00:00
kern_rwlock.c Print readers count as unsigned in ddb 'show lock'. 2007-03-13 16:51:27 +00:00
kern_sema.c
kern_shutdown.c Remove 'MPSAFE' annotations from the comments above most system calls: all 2007-03-04 22:36:48 +00:00
kern_sig.c Further system call comment cleanup: 2007-03-05 13:10:58 +00:00
kern_subr.c Removes useless (flags | ) KASSERT. The ^ one that actually 2007-01-16 11:40:55 +00:00
kern_switch.c - Change types for necent runq additions to u_char rather than int. 2007-02-08 01:52:25 +00:00
kern_sx.c Add two new function pointers 'lc_lock' and 'lc_unlock' to lock classes. 2007-03-09 16:27:11 +00:00
kern_synch.c Allow threads to atomically release rw and sx locks while waiting for an 2007-03-09 22:41:01 +00:00
kern_syscalls.c Make system call modules a bit more robust: 2006-08-01 16:32:20 +00:00
kern_sysctl.c Further system call comment cleanup: 2007-03-05 13:10:58 +00:00
kern_tc.c Commit the results of the typo hunt by Darren Pilgrim. 2006-08-04 07:56:35 +00:00
kern_thr.c - Remove setrunqueue and replace it with direct calls to sched_add(). 2007-01-23 08:46:51 +00:00
kern_thread.c Over NFS, an open() call could result in multiple over-the-wire 2007-03-09 04:02:38 +00:00
kern_time.c Further system call comment cleanup: 2007-03-05 13:10:58 +00:00
kern_timeout.c Improve ktr(4) logging for callout(9) subsystem. Log all inserts and 2006-10-11 14:57:03 +00:00
kern_umtx.c Further system call comment cleanup: 2007-03-05 13:10:58 +00:00
kern_uuid.c Further system call comment cleanup: 2007-03-05 13:10:58 +00:00
kern_xxx.c Further system call comment cleanup: 2007-03-05 13:10:58 +00:00
ksched.c Threading cleanup.. part 2 of several. 2006-12-06 06:34:57 +00:00
link_elf_obj.c Linker set support depends on the magic __start_<section> and 2006-11-30 10:50:29 +00:00
link_elf.c Mark the kernel linker file as linked so that it is visible to the various 2007-02-26 16:48:14 +00:00
linker_if.m
Make.tags.inc Makefile changes to reflect moving sys/isofs/cd9660 to sys/fs/cd9660. 2007-02-11 14:01:32 +00:00
Makefile Add support for the generated file systrace_args.c. 2006-08-05 19:25:14 +00:00
makesyscalls.sh Merge posix4/* into normal kernel hierarchy. 2006-11-11 16:26:58 +00:00
md4c.c
md5c.c
p1003_1b.c Further system call comment cleanup: 2007-03-05 13:10:58 +00:00
posix4_mib.c Fix mispatch of includes list; allows my kernel to build successfully. 2006-11-12 03:34:03 +00:00
sched_4bsd.c Use pause() rather than tsleep() on stack variables and function pointers. 2007-02-27 17:23:29 +00:00
sched_core.c Instead of doing comparisons using the pcpu area to see if 2007-03-08 06:44:34 +00:00
sched_ule.c - Handle the case where slptime == runtime. 2007-03-17 23:32:48 +00:00
serdev_if.m
subr_acl_posix1e.c Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
subr_autoconf.c Add a mutex to protect the list of interrupt config hooks. We do assume 2006-07-19 18:53:56 +00:00
subr_blist.c
subr_bus.c Use NULL rather than 0 for various pointer constants. 2007-02-26 19:28:18 +00:00
subr_clist.c
subr_clock.c Use utc_offset() where applicable, and hide the internals of it 2006-10-02 18:23:37 +00:00
subr_devstat.c
subr_disk.c Add a new I/O request - BIO_FLUSH, which basically tells providers below to 2006-10-31 21:11:21 +00:00
subr_eventhandler.c
subr_fattime.c Better naming of fattime conversion functions, they do convert to timespec 2006-10-24 10:27:23 +00:00
subr_firmware.c Cleanup and document the implementation of firmware(9) based on 2007-02-15 17:21:31 +00:00
subr_hints.c Use a sleep mutex instead of an sx lock for the kernel environment. This 2006-07-09 21:42:58 +00:00
subr_kdb.c Add a funny sysctl: debug.kdb.trap_code . 2006-06-18 12:27:59 +00:00
subr_kobj.c
subr_lock.c general LOCK_PROFILING cleanup 2007-02-26 08:26:44 +00:00
subr_log.c
subr_mbpool.c
subr_mchain.c
subr_module.c
subr_msgbuf.c
subr_param.c
subr_pcpu.c
subr_power.c
subr_prf.c Instead of doing comparisons using the pcpu area to see if 2007-03-08 06:44:34 +00:00
subr_prof.c Remove 'MPSAFE' annotations from the comments above most system calls: all 2007-03-04 22:36:48 +00:00
subr_rman.c Fix a case in rman_manage_region() where the resource list would get missorted. 2007-02-23 22:53:56 +00:00
subr_rtc.c Use utc_offset() where applicable, and hide the internals of it 2006-10-02 18:23:37 +00:00
subr_sbuf.c
subr_scanf.c
subr_sleepqueue.c Cleaner fix for handling declaration of loop variable under INVARIANTS 2006-12-17 00:14:20 +00:00
subr_smp.c Instead of doing comparisons using the pcpu area to see if 2007-03-08 06:44:34 +00:00
subr_stack.c Correct typos 2006-05-28 22:15:28 +00:00
subr_taskqueue.c - Remove setrunqueue and replace it with direct calls to sched_add(). 2007-01-23 08:46:51 +00:00
subr_trap.c Remove 'MPSAFE' annotations from the comments above most system calls: all 2007-03-04 22:36:48 +00:00
subr_turnstile.c - Remove setrunqueue and replace it with direct calls to sched_add(). 2007-01-23 08:46:51 +00:00
subr_unit.c
subr_witness.c Remove unnecessary privilege and privilege check for WITNESS sysctl. 2007-02-20 23:49:31 +00:00
sys_generic.c Further system call comment cleanup: 2007-03-05 13:10:58 +00:00
sys_pipe.c Further system call comment cleanup: 2007-03-05 13:10:58 +00:00
sys_process.c Remove 'MPSAFE' annotations from the comments above most system calls: all 2007-03-04 22:36:48 +00:00
sys_socket.c Move to ANSI C function headers. Re-wrap some comments. 2007-03-04 17:50:46 +00:00
syscalls.c This commits the remake in kern/ make sysent to get 2006-11-03 18:57:49 +00:00
syscalls.master Ok, here it is, we finally add SCTP to current. Note that this 2006-11-03 15:23:16 +00:00
systrace_args.c Ok, here it is, we finally add SCTP to current. Note that this 2006-11-03 15:23:16 +00:00
sysv_ipc.c Sync up PRIV_IPC_{ADMIN,READ,WRITE} priv checks in ipcperm() with 2007-02-20 00:06:59 +00:00
sysv_msg.c Further system call comment cleanup: 2007-03-05 13:10:58 +00:00
sysv_sem.c Further system call comment cleanup: 2007-03-05 13:10:58 +00:00
sysv_shm.c Further system call comment cleanup: 2007-03-05 13:10:58 +00:00
tty_compat.c
tty_conf.c
tty_cons.c Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
tty_pts.c Canonicalize copyrights in some files I hold copyrights on: 2007-01-08 17:49:59 +00:00
tty_pty.c Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
tty_subr.c
tty_tty.c Use ctty instead of just returning. ctty just has a simple open that 2006-09-27 16:41:15 +00:00
tty.c Back out rev. 1.266. The real cause for the recent panics has been fixed 2006-12-20 02:49:59 +00:00
uipc_accf.c
uipc_cow.c
uipc_debug.c Teach DDB how to print sockets, socket buffers, protosw's, and domain 2007-02-15 01:28:22 +00:00
uipc_domain.c soreceive_generic(), and sopoll_generic(). Add new functions sosend(), 2006-07-24 15:20:08 +00:00
uipc_mbuf2.c Complete break-out of sys/sys/mac.h into sys/security/mac/mac_framework.h 2006-10-22 11:52:19 +00:00
uipc_mbuf.c Unbreak writes of 0 bytes. Zero byte writes happen when only ancillary 2007-01-22 14:50:28 +00:00
uipc_mqueue.c Make insmntque() externally visibile and allow it to fail (e.g. during 2007-03-13 01:50:27 +00:00
uipc_sem.c Further system call comment cleanup: 2007-03-05 13:10:58 +00:00
uipc_sockbuf.c Maintain a pointer and offset pair into the socket buffer mbuf chain to 2007-03-19 18:35:13 +00:00
uipc_socket2.c Change two XXX's to two notes: the fact that SOCK_LOCK(so) == 2006-08-02 16:23:52 +00:00
uipc_socket.c - Use m_gethdr(), m_get(), and m_clget() instead of the macros in 2007-03-12 19:27:36 +00:00
uipc_syscalls.c Further system call comment cleanup: 2007-03-05 13:10:58 +00:00
uipc_usrreq.c In uipc_close(), we no longer always free the unpcb, as the last reference 2007-03-12 14:52:00 +00:00
vfs_acl.c Replay minor system call comment cleanup applied to kern_acl.c in a race 2007-03-05 13:26:07 +00:00
vfs_aio.c Further system call comment cleanup: 2007-03-05 13:10:58 +00:00
vfs_bio.c Instead of doing comparisons using the pcpu area to see if 2007-03-08 06:44:34 +00:00
vfs_cache.c Further system call comment cleanup: 2007-03-05 13:10:58 +00:00
vfs_cluster.c Change these descriptions of memory types used in malloc(9), as their 2007-03-05 00:21:40 +00:00
vfs_default.c Remove VFS_VPTOFH entirely. API is already broken and it is good time to 2007-02-16 17:32:41 +00:00
vfs_export.c Move vnode-to-file-handle translation from vfs_vptofh to vop_vptofh method. 2007-02-15 22:08:35 +00:00
vfs_extattr.c Update comments to reflect changes in the extattrctl() code. 2006-12-23 00:30:03 +00:00
vfs_hash.c Make insmntque() externally visibile and allow it to fail (e.g. during 2007-03-13 01:50:27 +00:00
vfs_init.c Remove VFS_VPTOFH entirely. API is already broken and it is good time to 2007-02-16 17:32:41 +00:00
vfs_lookup.c If both ISDOTDOT and NOCROSSMOUNT are set then lookup() might breaks out 2007-02-15 09:53:49 +00:00
vfs_mount.c Don't deny unmounting file systems for jailed processes immediately, allow 2007-03-18 02:39:19 +00:00
vfs_subr.c Make insmntque() externally visibile and allow it to fail (e.g. during 2007-03-13 01:50:27 +00:00
vfs_syscalls.c If vn_open() fails during kern_open(), don't fdrop() the new file object 2007-03-21 19:32:08 +00:00
vfs_vnops.c Add a VNASSERT to vn_close to detect if v_writecount is going 2007-02-12 22:53:01 +00:00
vnode_if.src Move vnode-to-file-handle translation from vfs_vptofh to vop_vptofh method. 2007-02-15 22:08:35 +00:00