freebsd-nq/sys
Robert Watson a0ca087183 When dropping a packet and issuing a reset during TCP segment handling,
unconditionally drop the tcbinfo lock (after all, we assert it lines
before), but call tcp_dropwithreset() under both inpcb and inpcbinfo
locks only if we pass in an tcpcb.  Otherwise, if the pointer is NULL,
firewall code may later recurse the global tcbinfo lock trying to look
up an inpcb.

This is an instance where a layering violation leads not only
potentially to code reentrace and recursion, but also to lock
recursion, and was revealed by the conversion to rwlocks because
acquiring a read lock on an rwlock already held with a write lock is
forbidden.  When these locks were mutexes, they simply recursed.

Reported by:	Stefan Ehmann <shoesoft at gmx dot net>
MFC after:	3 days
2008-09-24 11:07:03 +00:00
..
amd64 Change the static struct sysentvec and struct Elf_Brandinfo initializers 2008-09-24 10:14:37 +00:00
arm Change the static struct sysentvec and struct Elf_Brandinfo initializers 2008-09-24 10:14:37 +00:00
boot Backout rev 183181. It appears that I should have been using boot-device 2008-09-19 19:49:58 +00:00
bsm When MPSAFE ttys were merged, a new BSM audit event identifier was 2008-08-24 21:20:35 +00:00
cam Add a new cam_status CAM_SCSI_IT_NEXUS_LOST. This will be used by future patches 2008-09-18 14:48:46 +00:00
cddl Mips needs the same treatment for atomic_or_8 as the other RISCy 2008-09-18 19:57:06 +00:00
compat Change the static struct sysentvec and struct Elf_Brandinfo initializers 2008-09-24 10:14:37 +00:00
conf The kernel implemented 'memcmp' is an alias for 'bcmp'. However, memcmp 2008-09-23 14:45:10 +00:00
contrib Merge ath again (addition of wisoc files). 2008-09-05 22:24:31 +00:00
crypto Simplify session selection/allocation. 2008-08-09 20:01:01 +00:00
ddb Make ddb command registration dynamic so modules can extend 2008-09-15 22:45:14 +00:00
dev - Remove default NIC dependency on ulp headers 2008-09-24 01:19:08 +00:00
fs The kernel implemented 'memcmp' is an alias for 'bcmp'. However, memcmp 2008-09-23 14:45:10 +00:00
gdb Commit SYSINIT() ;-adding patch missed in previous pass. 2008-03-16 13:02:04 +00:00
geom Just a fixup for a KTRACE message I stumbled upon many moons ago. 2008-09-18 15:02:19 +00:00
gnu fdescfs, devfs, mqueuefs, nfs, portalfs, pseudofs, tmpfs and xfs 2008-09-20 19:50:52 +00:00
i386 Change the static struct sysentvec and struct Elf_Brandinfo initializers 2008-09-24 10:14:37 +00:00
ia64 Change the static struct sysentvec and struct Elf_Brandinfo initializers 2008-09-24 10:14:37 +00:00
isa MFp4 (my newcard tree): 2008-08-24 07:40:14 +00:00
kern Change the static struct sysentvec and struct Elf_Brandinfo initializers 2008-09-24 10:14:37 +00:00
libkern The kernel implemented 'memcmp' is an alias for 'bcmp'. However, memcmp 2008-09-23 14:45:10 +00:00
mips Change the static struct sysentvec and struct Elf_Brandinfo initializers 2008-09-24 10:14:37 +00:00
modules - Remove default NIC dependency on ulp headers 2008-09-24 01:19:08 +00:00
net Fix clone destruction, can't use the simple api because that does not remove 2008-09-20 19:38:37 +00:00
net80211 cleanup bss node setup; syncs w/ p4 state that's been in use for months 2008-09-22 00:22:09 +00:00
netatalk Remove NETISR_MPSAFE, which allows specific netisr handlers to be directly 2008-07-04 00:21:38 +00:00
netgraph Add ng_rmnode_flags() so the caller can pass NG_QUEUE and have the node 2008-09-22 19:28:18 +00:00
netinet When dropping a packet and issuing a reset during TCP segment handling, 2008-09-24 11:07:03 +00:00
netinet6 When invoking the udp_send() from udp6_send() due to use of a v6-mapped 2008-09-22 06:44:03 +00:00
netipsec Commit step 1 of the vimage project, (network stack) 2008-08-17 23:27:27 +00:00
netipx Remove the suser(9) interface from the kernel. It has been replaced from 2008-09-17 15:49:44 +00:00
netnatm Remove NETISR_MPSAFE, which allows specific netisr handlers to be directly 2008-07-04 00:21:38 +00:00
netncp lockmgrs need to be released before to be destroyed and draining doesn't 2008-03-30 18:16:33 +00:00
netsmb Really, smb_iod_main() is not totally MPSAFE, so just acquire and drop 2008-03-27 01:23:59 +00:00
nfs Replaced the misleading uses of a historical artefact M_TRYWAIT with M_WAIT. 2008-03-25 09:39:02 +00:00
nfs4client Decontextualize the couplet VOP_GETATTR / VOP_SETATTR as the passed thread 2008-08-28 15:23:18 +00:00
nfsclient fdescfs, devfs, mqueuefs, nfs, portalfs, pseudofs, tmpfs and xfs 2008-09-20 19:50:52 +00:00
nfsserver Remove the suser(9) interface from the kernel. It has been replaced from 2008-09-17 15:49:44 +00:00
nlm Rename RPC's 'struct pmap' to 'struct portmap' to avoid confusing it with 2008-08-25 09:36:17 +00:00
opencrypto Make ftruncate a 'struct file' operation rather than a vnode operation. 2008-01-07 20:05:19 +00:00
pc98 Resurrect the sbni(4) driver. Someone finally tested the MPSAFE patches and 2008-09-10 18:36:58 +00:00
pccard
pci Move wb driver from sys/pci to sys/dev/wb. 2008-08-14 21:26:29 +00:00
powerpc Change the static struct sysentvec and struct Elf_Brandinfo initializers 2008-09-24 10:14:37 +00:00
rpc Rename RPC's 'struct pmap' to 'struct portmap' to avoid confusing it with 2008-08-25 09:36:17 +00:00
security Remove the suser(9) interface from the kernel. It has been replaced from 2008-09-17 15:49:44 +00:00
sparc64 Change the static struct sysentvec and struct Elf_Brandinfo initializers 2008-09-24 10:14:37 +00:00
sun4v Work around Cheetah+ erratum 34 (USIII+ erratum #10) by relocating 2008-09-10 20:07:08 +00:00
sys The kernel implemented 'memcmp' is an alias for 'bcmp'. However, memcmp 2008-09-23 14:45:10 +00:00
tools Introduce a standalone shell script for embedding MFS image. 2008-02-05 10:46:30 +00:00
ufs Close a race between concurrent calls to ufsdirhash_recycle() and 2008-09-22 20:53:22 +00:00
vm Prevent an integer overflow in vm_pageout_page_stats() on machines with a 2008-09-21 18:01:34 +00:00
xdr Add the new kernel-mode NFS Lock Manager. To use it instead of the 2008-03-26 15:23:12 +00:00
xen - add more debug cruft to xenbus 2008-08-20 09:20:12 +00:00
Makefile Improve the glimpse target: don't index .svn and compile directories. 2008-08-15 14:11:30 +00:00