1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-20 11:11:24 +00:00
freebsd/sys/kern
Robert Watson aa57bb0424 Correct a resource leak introduced in recent accept locking changes:
when I reordered events in accept1() to allocate a file descriptor
earlier, I didn't properly update use of goto on exit to unwind for
cases where the file descriptor is now held, but wasn't previously.
The result was that, in the event of accept() on a non-blocking socket,
or in the event of a socket error, a file descriptor would be leaked.

This ended up being non-fatal in many cases, as the file descriptor
would be properly GC'd on process exit, so only showed up for processes
that do a lot of non-blocking accept() calls, and also live for a long
time (such as qmail).

This change updates the use of goto targets to do additional unwinding.

Eyes provided by:	Brian Feldman <green@freebsd.org>
Feet, hands provided by:	Stefan Ehmann <shoesoft@gmx.net>,
				Dimitry Andric <dimitry@andric.com>
				Arjan van Leeuwen <avleeuwen@piwebs.com>
2004-06-07 21:45:44 +00:00
..
bus_if.m
clock_if.m
device_if.m
genassym.sh
imgact_aout.c Change the types of vn_rdwr_inchunks()'s len and aresid arguments to 2004-06-05 02:18:28 +00:00
imgact_elf32.c
imgact_elf64.c
imgact_elf.c Change the types of vn_rdwr_inchunks()'s len and aresid arguments to 2004-06-05 02:18:28 +00:00
imgact_gzip.c
imgact_shell.c
inflate.c
init_main.c Loudly announce WITNESS and DIAGNOSTIC options and warn about reduced 2004-02-29 16:56:54 +00:00
init_sysent.c Regen. 2004-04-05 10:17:23 +00:00
kern_acct.c Fixed some style bugs (mainly misplaced comments, and totally disordered 2004-03-04 09:47:09 +00:00
kern_acl.c
kern_alq.c
kern_clock.c Remove a redundant "td = curthread" statement from profclock(). 2004-06-02 12:05:06 +00:00
kern_condvar.c Associate a simple count of waiters with each condition variable. The 2004-04-06 19:17:46 +00:00
kern_conf.c Introduce a ttyioctl() cdevsw default function. 2004-06-01 13:39:02 +00:00
kern_context.c
kern_descrip.c Push the VOP_ADVLOCK() call to release advisory locks on vnode file 2004-06-01 18:03:20 +00:00
kern_environment.c If the buffer supplied to kenv(KENV_DUMP, ...) isn't big enough, 2004-04-28 01:27:33 +00:00
kern_event.c Add GIANT_REQUIRED to kqueue_close(), since kqueue currently requires 2004-06-01 18:05:41 +00:00
kern_exec.c Move TDF_SA from td_flags to td_pflags (and rename it accordingly) 2004-06-02 07:52:36 +00:00
kern_exit.c Move TDF_SA from td_flags to td_pflags (and rename it accordingly) 2004-06-02 07:52:36 +00:00
kern_fork.c Remove advertising clause from University of California Regent's license, 2004-04-05 21:03:37 +00:00
kern_idle.c
kern_intr.c Detect interrupt storms better. The storm detection didn't work at all 2004-06-05 18:27:28 +00:00
kern_jail.c Fix sysctl name: security.jail.getfsstate_getfsstatroot_only -> 2004-05-20 05:28:44 +00:00
kern_kse.c Move the KSE ABI specific code here and separate it from code that 2004-06-07 07:25:03 +00:00
kern_kthread.c
kern_ktr.c
kern_ktrace.c Remove advertising clause from University of California Regent's license, 2004-04-05 21:03:37 +00:00
kern_linker.c Since we go to the trouble of compiling the kobj ops table for each class, 2004-05-17 21:24:39 +00:00
kern_lock.c Move TDF_DEADLKTREAT into td_pflags (and rename it accordingly) to avoid 2004-06-03 01:47:37 +00:00
kern_lockf.c Remove advertising clause from University of California Regent's license, 2004-04-05 21:03:37 +00:00
kern_mac.c Add /* !MAC */ to final #endif. 2004-05-03 22:54:46 +00:00
kern_malloc.c Bring in mbuma to replace mballoc. 2004-05-31 21:46:06 +00:00
kern_mbuf.c Fix a couple of bugs in the mbuf and packet ctors. In the latter case, 2004-06-01 16:17:10 +00:00
kern_mib.c Remove advertising clause from University of California Regent's license, 2004-04-05 21:03:37 +00:00
kern_module.c
kern_mtxpool.c
kern_mutex.c Add a new kernel option MUTEX_WAKE_ALL that changes the mutex unlock code 2004-04-06 19:12:24 +00:00
kern_ntptime.c Annual NTP kernel code spring-cleaning: 2004-03-14 15:23:05 +00:00
kern_physio.c
kern_poll.c Ensure that the poll_burst <= poll_burst_max constraint really holds. 2004-04-15 07:38:44 +00:00
kern_proc.c Implement the new KERN_PROC_RGID option, and also implement the 2004-05-22 23:11:44 +00:00
kern_prot.c Remove advertising clause from University of California Regent's license, 2004-04-05 21:03:37 +00:00
kern_resource.c Fix rtprio() to do sensible things when called from threaded processes. 2004-05-08 08:56:05 +00:00
kern_sema.c
kern_shutdown.c Remove filename+line number from panic messages. 2004-06-06 21:26:49 +00:00
kern_sig.c According to SUSv3, sigwait is different with sigwaitinfo, sigwait 2004-06-07 13:35:02 +00:00
kern_subr.c Remove checks for curthread == NULL - it can't happen. 2004-06-03 10:22:47 +00:00
kern_switch.c
kern_sx.c Fix _sx_assert() to panic() rather than printf() when an assertion fails 2004-02-27 16:13:44 +00:00
kern_synch.c Remove a stale and misleading comment. 2004-06-07 09:35:00 +00:00
kern_syscalls.c
kern_sysctl.c Remove advertising clause from University of California Regent's license, 2004-04-05 21:03:37 +00:00
kern_tc.c Just because the timecounter reads the same value on two samples 2004-03-04 14:14:23 +00:00
kern_thr.c If you're trying to find out if a thread is valid and in 2004-04-19 14:20:01 +00:00
kern_thread.c Split kern_thread.c into 2 parts. kern_kse.c and kern_thread.c 2004-06-07 19:00:57 +00:00
kern_time.c Remove advertising clause from University of California Regent's license, 2004-04-05 21:03:37 +00:00
kern_timeout.c The paper "Hashed Timers and Hierarchical Wheels: Data Structures for the 2004-04-25 04:10:17 +00:00
kern_umtx.c Use the proc lock to sleep on a libthr umtx. 2004-03-27 14:32:03 +00:00
kern_uuid.c
kern_xxx.c Remove advertising clause from University of California Regent's license, 2004-04-05 21:03:37 +00:00
ksched.c
link_elf_obj.c If a symbol has section+offset definitions provided, always use instead 2004-05-18 05:15:43 +00:00
link_elf.c Include <sys/gmon.h> instead of <machine/profile.h> for the declaration 2004-05-19 14:36:38 +00:00
linker_if.m
Make.tags.inc
Makefile
makesyscalls.sh
md4c.c
md5c.c
p1003_1b.c
posix4_mib.c
sched_4bsd.c Remove advertising clause from University of California Regent's license, 2004-04-05 21:03:37 +00:00
sched_ule.c - Run sched_balance() and sched_balance_groups() from hardclock via 2004-06-02 05:46:48 +00:00
subr_acl_posix1e.c
subr_autoconf.c Remove advertising clause from University of California Regent's license, 2004-04-05 21:03:37 +00:00
subr_blist.c Move the definitions of SWAPBLK_NONE and SWAPBLK_MASK from vm_page.h to 2004-06-04 04:03:26 +00:00
subr_bus.c When we don't have any meaningful value to print for the device sysctl 2004-06-05 11:39:05 +00:00
subr_clist.c
subr_clock.c Remove advertising clause from University of California Regent's license, 2004-04-05 21:03:37 +00:00
subr_devstat.c
subr_disk.c
subr_eventhandler.c
subr_hints.c
subr_kobj.c
subr_log.c Remove advertising clause from University of California Regent's license, 2004-04-05 21:03:37 +00:00
subr_mbpool.c
subr_mchain.c Remove advertising clause from University of California Regent's license, 2004-04-05 21:03:37 +00:00
subr_module.c
subr_msgbuf.c
subr_param.c Remove advertising clause from University of California Regent's license, 2004-04-05 21:03:37 +00:00
subr_pcpu.c
subr_power.c
subr_prf.c Remove advertising clause from University of California Regent's license, 2004-04-05 21:03:37 +00:00
subr_prof.c Enable MI bits for gcc -ftest-coverage -fprofile-arcs on amd64. 2004-05-29 01:18:14 +00:00
subr_rman.c Fix off by one error, twice. 2004-04-12 23:02:21 +00:00
subr_rtc.c Remove advertising clause from University of California Regent's license, 2004-04-05 21:03:37 +00:00
subr_sbuf.c
subr_scanf.c Remove advertising clause from University of California Regent's license, 2004-04-05 21:03:37 +00:00
subr_sleepqueue.c Fixed some common printf format errors. Don't assume that "struct foo *" 2004-05-14 20:51:42 +00:00
subr_smp.c Move the CPU newbus attachment to i386 legacy. The acpi_cpu device will 2004-05-06 15:54:02 +00:00
subr_taskqueue.c
subr_trap.c Remove unused variable. 2004-03-31 08:20:44 +00:00
subr_turnstile.c Rename turnstile_wakeup() to turnstile_broadcast() to make the naming 2004-04-06 19:07:21 +00:00
subr_witness.c - Comment out NULL, NULL barrier for Unix domain sockets section as the 2004-06-03 20:07:44 +00:00
sys_generic.c Remove advertising clause from University of California Regent's license, 2004-04-05 21:03:37 +00:00
sys_pipe.c Revise the direct or optimized case to use uiomove_fromphys() by the reader 2004-03-27 19:50:23 +00:00
sys_process.c Finish fixing up Alpha to work with an MP safe ptrace(): 2004-04-01 20:56:44 +00:00
sys_socket.c Remove advertising clause from University of California Regent's license, 2004-04-05 21:03:37 +00:00
syscalls.c Regen. 2004-04-05 10:17:23 +00:00
syscalls.master Add lgetfh(2) which is like getfh(2) but doesn't follow symlinks. 2004-04-05 10:15:53 +00:00
sysv_ipc.c
sysv_msg.c Add missing #include <sys/module.h> 2004-05-30 20:34:58 +00:00
sysv_sem.c Add missing #include <sys/module.h> 2004-05-30 20:34:58 +00:00
sysv_shm.c Add missing #include <sys/module.h> 2004-05-30 20:34:58 +00:00
tty_compat.c Compare t_brkc against (char)_POSIX_VDISABLE, not against -1. 2004-05-07 15:35:38 +00:00
tty_conf.c Make linesw[] an array of pointers to linedesc instead of an array of 2004-06-07 20:45:45 +00:00
tty_cons.c Remove advertising clause from University of California Regent's license, 2004-04-05 21:03:37 +00:00
tty_pty.c Machine generated patch which changes linedisc calls from accessing 2004-06-04 16:02:56 +00:00
tty_subr.c
tty_tty.c
tty.c Make linesw[] an array of pointers to linedesc instead of an array of 2004-06-07 20:45:45 +00:00
uipc_accf.c Add a global mutex, accept_filter_mtx, to protect the global list of 2004-06-01 04:08:48 +00:00
uipc_cow.c In some cases, sf_buf_alloc() should sleep with pri PCATCH; in others, it 2004-04-03 09:16:27 +00:00
uipc_domain.c Remove advertising clause from University of California Regent's license, 2004-04-05 21:03:37 +00:00
uipc_jumbo.c
uipc_mbuf2.c Bring in mbuma to replace mballoc. 2004-05-31 21:46:06 +00:00
uipc_mbuf.c Bring in mbuma to replace mballoc. 2004-05-31 21:46:06 +00:00
uipc_proto.c Remove advertising clause from University of California Regent's license, 2004-04-05 21:03:37 +00:00
uipc_sem.c Add missing #include <sys/module.h> 2004-05-30 20:34:58 +00:00
uipc_sockbuf.c Mark sun_noname as const since it's immutable. Update definitions 2004-06-04 04:07:08 +00:00
uipc_socket2.c Mark sun_noname as const since it's immutable. Update definitions 2004-06-04 04:07:08 +00:00
uipc_socket.c Integrate accept locking from rwatson_netperf, introducing a new 2004-06-02 04:15:39 +00:00
uipc_syscalls.c Correct a resource leak introduced in recent accept locking changes: 2004-06-07 21:45:44 +00:00
uipc_usrreq.c Mark sun_noname as const since it's immutable. Update definitions 2004-06-04 04:07:08 +00:00
vfs_acl.c
vfs_aio.c Add missing #include <sys/module.h> 2004-05-30 20:34:58 +00:00
vfs_bio.c Avoid pointless zeroing of the bogus page in vfs_bio_clrbuf(). 2004-05-08 06:46:40 +00:00
vfs_cache.c Remove advertising clause from University of California Regent's license, 2004-04-05 21:03:37 +00:00
vfs_cluster.c Remove advertising clause from University of California Regent's license, 2004-04-05 21:03:37 +00:00
vfs_default.c Remove advertising clause from University of California Regent's license, 2004-04-05 21:03:37 +00:00
vfs_export.c Include <sys/mutex.h> and its prerequisite <sys/lock.h> instesd of depending 2004-04-21 12:10:30 +00:00
vfs_extattr.c Remove unused code. 2004-06-07 12:19:55 +00:00
vfs_init.c Remove advertising clause from University of California Regent's license, 2004-04-05 21:03:37 +00:00
vfs_lookup.c Remove advertising clause from University of California Regent's license, 2004-04-05 21:03:37 +00:00
vfs_mount.c Remove advertising clause from University of California Regent's license, 2004-04-05 21:03:37 +00:00
vfs_subr.c Assert Giant in vrele(). 2004-05-31 19:06:01 +00:00
vfs_syscalls.c Remove unused code. 2004-06-07 12:19:55 +00:00
vfs_vnops.c Change the types of vn_rdwr_inchunks()'s len and aresid arguments to 2004-06-05 02:18:28 +00:00
vnode_if.src Remove advertising clause from University of California Regent's license, 2004-04-05 21:03:37 +00:00