linux/net
Pavel Emelyanov 78c2e50253 [IPV6]: Fix race in ipv6_flowlabel_opt() when inserting two labels
In the IPV6_FL_A_GET case the hash is checked for flowlabels
with the given label. If it is not found, the lock, protecting 
the hash, is dropped to be re-get for writing. After this a
newly allocated entry is inserted, but no checks are performed
to catch a classical SMP race, when the conflicting label may 
be inserted on another cpu.

Use the (currently unused) return value from fl_intern() to
return the conflicting entry (if found) and re-check, whether
we can reuse it (IPV6_FL_F_EXCL) or return -EEXISTS.

Also add the comment, about why not re-lookup the current
sock for conflicting flowlabel entry.

Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2007-10-18 05:18:56 -07:00
..
9p
802
8021q
appletalk
atm
ax25
bluetooth
bridge
core [IPSEC]: Rename mode to outer_mode and add inner_mode 2007-10-17 21:35:51 -07:00
dccp
decnet
econet
ethernet
ieee80211
ipv4 [TCP]: Remove lost_retrans zero seqno special cases 2007-10-18 05:07:57 -07:00
ipv6 [IPV6]: Fix race in ipv6_flowlabel_opt() when inserting two labels 2007-10-18 05:18:56 -07:00
ipx
irda
iucv
key
lapb
llc
mac80211 [MAC80211]: only honor IW_SCAN_THIS_ESSID in STA, IBSS, and AP modes 2007-10-17 21:16:16 -07:00
netfilter [NETFILTER]: xt_sctp: fix mistake to pass a pointer where array is required 2007-10-18 05:12:21 -07:00
netlabel
netlink
netrom
packet
rfkill
rose
rxrpc
sched [NET]: fix carrier-on bug? 2007-10-17 23:26:43 -07:00
sctp
sunrpc
tipc
unix
wanrouter
wireless
x25
xfrm [IPSEC]: Rename mode to outer_mode and add inner_mode 2007-10-17 21:35:51 -07:00
compat.c
Kconfig
Makefile
nonet.c
socket.c
sysctl_net.c
TUNABLE