kernel-ark/include/net
Miklos Szeredi 6209344f5a net: unix: fix inflight counting bug in garbage collector
Previously I assumed that the receive queues of candidates don't
change during the GC.  This is only half true, nothing can be received
from the queues (see comment in unix_gc()), but buffers could be added
through the other half of the socket pair, which may still have file
descriptors referring to it.

This can result in inc_inflight_move_tail() erronously increasing the
"inflight" counter for a unix socket for which dec_inflight() wasn't
previously called.  This in turn can trigger the "BUG_ON(total_refs <
inflight_refs)" in a later garbage collection run.

Fix this by only manipulating the "inflight" counter for sockets which
are candidates themselves.  Duplicating the file references in
unix_attach_fds() is also needed to prevent a socket becoming a
candidate for GC while the skb that contains it is not yet queued.

Reported-by: Andrea Bittau <a.bittau@cs.ucl.ac.uk>
Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
CC: stable@kernel.org
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-11-09 11:17:33 -08:00
..
9p 9p: fix sparse warnings 2008-10-22 18:54:47 -05:00
bluetooth include: replace __FUNCTION__ with __func__ 2008-10-16 11:21:30 -07:00
irda include: replace __FUNCTION__ with __func__ 2008-10-16 11:21:30 -07:00
iucv
netfilter netfilter: ctnetlink: remove bogus module dependency between ctnetlink and nf_nat 2008-10-14 11:58:31 -07:00
netns netfilter: netns: use NFPROTO_NUMPROTO instead of NUMPROTO for tables array 2008-10-20 03:31:54 -07:00
phonet Phonet: include generic link-layer header size in MAX_PHONET_HEADER 2008-10-26 23:06:31 -07:00
sctp sctp: Fix to handle SHUTDOWN in SHUTDOWN_RECEIVED state 2008-10-23 01:01:18 -07:00
tc_act pkt_action: add new action skbedit 2008-09-12 16:30:20 -07:00
tipc tipc: Remove unneeded parameter to tipc_createport_raw() 2008-07-14 22:42:19 -07:00
act_api.h
addrconf.h netns: Add network namespace argument to rt6_fill_node() and ipv6_dev_get_saddr() 2008-08-14 15:33:21 -07:00
af_rxrpc.h
af_unix.h net: unix: fix inflight counting bug in garbage collector 2008-11-09 11:17:33 -08:00
ah.h
arp.h
atmclip.h
ax25.h
ax88796.h
cfg80211.h cfg80211: show interface type 2008-09-24 16:18:00 -04:00
checksum.h
cipso_ipv4.h cipso: Add support for native local labeling and fixup mapping names 2008-10-10 10:16:34 -04:00
compat.h net: Use standard structures for generic socket address structures. 2008-07-19 22:35:47 -07:00
datalink.h
dn_dev.h
dn_fib.h
dn_neigh.h
dn_nsp.h
dn_route.h
dn.h
dsa.h dsa: add support for Trailer tagging format 2008-10-08 17:24:16 -07:00
dsfield.h
dst.h net: Kill plain NET_XMIT_BYPASS. 2008-08-04 23:04:08 -07:00
esp.h
fib_rules.h net: add fib_rules_ops to flush_cache method 2008-07-05 19:01:28 -07:00
flow.h ipv4: Loosen source address check on IPv4 output 2008-10-01 07:28:28 -07:00
garp.h vlan: Add GVRP support 2008-07-05 21:26:57 -07:00
gen_stats.h
genetlink.h
icmp.h mib: put icmpmsg statistics on struct net 2008-07-18 04:04:22 -07:00
ieee80211_crypt.h
ieee80211_radiotap.h include: use get/put_unaligned_* helpers 2008-07-25 10:53:26 -07:00
ieee80211.h include: replace __FUNCTION__ with __func__ 2008-10-16 11:21:30 -07:00
if_inet6.h ipv6: make struct ipv6_devconf static 2008-07-22 14:21:58 -07:00
inet6_connection_sock.h
inet6_hashtables.h inet: Don't lookup the socket if there's a socket attached to the skb 2008-10-07 12:41:01 -07:00
inet_common.h
inet_connection_sock.h net: more #ifdef CONFIG_COMPAT 2008-08-28 02:53:51 -07:00
inet_ecn.h
inet_frag.h
inet_hashtables.h inet: Don't lookup the socket if there's a socket attached to the skb 2008-10-07 12:41:01 -07:00
inet_sock.h tcp: Port redirection support for TCP 2008-10-01 07:46:49 -07:00
inet_timewait_sock.h ipv4: Implement IP_TRANSPARENT socket option 2008-10-01 07:30:02 -07:00
inetpeer.h
ip6_checksum.h
ip6_fib.h
ip6_route.h netns: Add network namespace argument to rt6_fill_node() and ipv6_dev_get_saddr() 2008-08-14 15:33:21 -07:00
ip6_tunnel.h
ip_fib.h
ip_vs.h include: replace __FUNCTION__ with __func__ 2008-10-16 11:21:30 -07:00
ip.h sysctl: simplify ->strategy 2008-10-16 11:21:47 -07:00
ipcomp.h ipsec: ipcomp - Merge IPComp implementations 2008-07-25 02:54:40 -07:00
ipconfig.h
ipip.h inet: Make tunnel RX/TX byte counters more consistent 2008-10-09 12:03:17 -07:00
ipv6.h ipv6: making ip and icmp statistics per/namespace 2008-10-08 11:16:45 -07:00
ipx.h
iw_handler.h
lapb.h
llc_c_ac.h
llc_c_ev.h
llc_c_st.h
llc_conn.h
llc_if.h
llc_pdu.h
llc_s_ac.h
llc_s_ev.h
llc_s_st.h
llc_sap.h
llc.h
mac80211.h mac80211.h: fix kernel-doc excesses 2008-10-27 17:46:11 -04:00
mip6.h
ndisc.h sysctl: simplify ->strategy 2008-10-16 11:21:47 -07:00
neighbour.h core: add stat to track unresolved discards in neighbor cache 2008-07-16 20:50:49 -07:00
net_namespace.h netns: add register_pernet_gen_subsys/unregister_pernet_gen_subsys 2008-10-30 23:55:16 -07:00
netdma.h
netevent.h
netlabel.h netlabel: Add configuration support for local labeling 2008-10-10 10:16:34 -04:00
netlink.h Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2008-10-01 06:12:56 -07:00
netrom.h
nexthop.h
p8022.h
pkt_cls.h
pkt_sched.h pkt_sched: Remove the tx queue state check in qdisc_run() 2008-09-23 01:05:56 -07:00
protocol.h
psnap.h
raw.h
rawv6.h
red.h
request_sock.h tcp: Fix kernel panic when calling tcp_v(4/6)_md5_do_lookup 2008-08-06 23:50:04 -07:00
rose.h
route.h ipv4: Conditionally enable transparent flow flag when connecting 2008-10-01 07:35:39 -07:00
rtnetlink.h
sch_generic.h pkt_sched: Fix handling of gso skbs on requeuing 2008-10-06 09:54:39 -07:00
scm.h net: Fix recursive descent in __scm_destroy(). 2008-11-06 13:51:50 -08:00
slhc_vj.h
snmp.h
sock.h net: delete excess kernel-doc notation 2008-10-30 23:54:35 -07:00
stp.h net: Add STP demux layer 2008-07-05 21:25:39 -07:00
syncppp.h Remove bogus variables from syncppp.[ch] 2008-07-23 23:00:31 +02:00
tcp_states.h
tcp.h net: wrap sk->sk_backlog_rcv() 2008-10-07 14:18:42 -07:00
timewait_sock.h
transp_v6.h
udp.h netns: make uplitev6 mib per/namespace 2008-10-07 14:50:06 -07:00
udplite.h
wext.h
wireless.h cfg80211: show interface type 2008-09-24 16:18:00 -04:00
x25.h
x25device.h
xfrm.h xfrm: MIGRATE enhancements (draft-ebalard-mext-pfkey-enhanced-migrate) 2008-10-05 13:33:42 -07:00