freebsd-nq/sys
Don Lewis 9d2b090975 We can't call fsetown() from sonewconn() because sonewconn() is be called
from an interrupt context and fsetown() wants to peek at curproc, call
malloc(..., M_WAITOK), and fiddle with various unprotected data structures.
The fix is to move the code that duplicates the F_SETOWN/FIOSETOWN state
of the original socket to the new socket from sonewconn() to accept1(),
since accept1() runs in the correct context.  Deferring this until the
process calls accept() is harmless since the process can't do anything
useful with SIGIO on the new socket until it has the descriptor for that
socket.

One could make the case for not bothering to duplicate the
F_SETOWN/FIOSETOWN state and requiring the process to explicitly make the
fcntl() or ioctl() call on the new socket, but this would be incompatible
with the previous implementation and might break programs which rely on
the old semantics.

This bug was discovered by Andrew Gallatin <gallatin@cs.duke.edu>.
1998-11-23 00:45:39 +00:00
..
alpha Oops, I forgot to update this file when I changed moused recently. 1998-11-22 11:57:59 +00:00
amd64 Remove amd', nca' SCSI devices to match Mike's LINT commit. 1998-11-12 11:29:28 +00:00
boot Drop use of BIOS int 0x14 services in favor of direct port I/O. 1998-11-22 07:59:16 +00:00
cam Fix a few problems that Bruce noticed about a month ago, and fix oup one 1998-11-22 23:44:47 +00:00
coda A few bug fixes for Robert Watson 1998-11-16 19:48:26 +00:00
compat MF22: Bring in some linux sound ioctl support which I committed to 2.2 1998-11-12 00:42:08 +00:00
compile
conf Remove -U__NetBSD__ 1998-11-18 23:51:17 +00:00
contrib/softupdates Change dirty block list handling to use TAILQ macros. 1998-10-31 15:33:32 +00:00
ddb Forgot to commit this; the alpha uses the kld symbol interface now. The 1998-10-15 02:01:50 +00:00
dev Remove broken and useless intr interface. 1998-11-22 22:01:42 +00:00
fs Return ENOTTY instead of EBADF for ioctls on dead vnodes. This fixes 1998-11-22 09:19:07 +00:00
geom Update system to new device statistics code. 1998-09-15 08:15:30 +00:00
gnu Fixed a misspelling of boolean true as MNT_WAIT. 1998-11-15 15:46:33 +00:00
i386 Reduce i/o overheads by not preserving the channel access register in 1998-11-22 17:40:32 +00:00
isa * Add hooks to allow the X server to access I/O ports and memory. 1998-11-15 18:25:17 +00:00
isofs/cd9660 Don't follow null bdevsw pointers. The `major(dev) < nblkdev' test rotted 1998-10-25 19:26:18 +00:00
kern We can't call fsetown() from sonewconn() because sonewconn() is be called 1998-11-23 00:45:39 +00:00
libkern Converted rcsid to $Id$ again. There shouldn't be any rcsids in the kernel. 1998-08-17 19:26:37 +00:00
miscfs Return ENOTTY instead of EBADF for ioctls on dead vnodes. This fixes 1998-11-22 09:19:07 +00:00
modules Install scripts without .sh suffix. 1998-11-12 00:37:39 +00:00
msdosfs Support NT VFAT lower case flags. 1998-11-21 00:20:24 +00:00
net I got another batch of suggestions for cosmetic changes from bde. 1998-11-11 10:56:07 +00:00
netatalk Fixed printf format errors. 1998-08-17 01:05:25 +00:00
netatm Unneeded file. 1998-10-31 20:09:25 +00:00
netinet Fix a couple of typos. 1998-11-19 18:07:28 +00:00
netipx Yow! Completely change the way socket options are handled, eliminating 1998-08-23 03:07:17 +00:00
netkey Fixed printf format errors. 1998-08-17 01:05:25 +00:00
netnatm Nitpicking and dusting performed on a train. Removes trivial warnings 1998-10-25 17:44:59 +00:00
netns Make INET a proper option. 1998-01-08 23:42:31 +00:00
nfs Reimplement the NFS ACCESS RPC cache as an "accelerator" rather than a true 1998-11-15 20:36:18 +00:00
nfsclient Reimplement the NFS ACCESS RPC cache as an "accelerator" rather than a true 1998-11-15 20:36:18 +00:00
nfsserver Fix a panic in nfsrv_dorec() where a NULL pointer could be passed to 1998-11-13 09:44:12 +00:00
pc98 Eliminate compiler warning. 1998-11-21 01:57:48 +00:00
pccard Add #include to get a prototype for update_intr_masks(). 1998-11-09 09:30:55 +00:00
pci Add missing return statement to rl_phy_writereg(). This bug didn't actually 1998-11-20 19:26:37 +00:00
posix4 Set PAGE_SIZE for _SC_PAGESIZE sysconf(). 1998-06-01 21:54:43 +00:00
powerpc * Add hooks to allow the X server to access I/O ports and memory. 1998-11-15 18:25:17 +00:00
rpc Resolve conflicts. 1997-05-28 04:45:15 +00:00
sys - Added support for Genius Kidspad tablet. 1998-11-20 11:22:17 +00:00
tools Make the vnode opv vector construction fully dynamic. Previously we 1998-11-10 09:04:09 +00:00
ufs Restored the "reallocblks" code to its former glory. What this does is 1998-11-13 01:01:44 +00:00
vm Fixed a null pointer panic in spc_free(). swap_pager_putpages() 1998-11-19 06:20:42 +00:00
Makefile Build KLD modules, these work for both a.out and elf. 1998-11-03 06:50:58 +00:00