1
linux/net/ipv4
Pavel Emelyanov a8ddc9163c netfilter: ipt_recent: fix race between recent_mt_destroy and proc manipulations
The thing is that recent_mt_destroy first flushes the entries
from table with the recent_table_flush and only *after* this
removes the proc file, corresponding to that table.

Thus, if we manage to write to this file the '+XXX' command we
will leak some entries. If we manage to write there a 'clean'
command we'll race in two recent_table_flush flows, since the
recent_mt_destroy calls this outside the recent_lock.

The proper solution as I see it is to remove the proc file first
and then go on with flushing the table. This flushing becomes
safe w/o the lock, since the table is already inaccessible from
the outside.

Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
2008-07-31 00:38:31 -07:00
..
ipvs Merge branch 'stealer/ipvs/sync-daemon-cleanup-for-next' of git://git.stealer.net/linux-2.6 2008-07-16 20:07:06 -07:00
netfilter netfilter: ipt_recent: fix race between recent_mt_destroy and proc manipulations 2008-07-31 00:38:31 -07:00
af_inet.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 2008-07-26 20:23:44 -07:00
ah4.c [IPSEC]: Fix bogus usage of u64 on input sequence number 2008-02-12 22:50:35 -08:00
arp.c mib: add net to NET_INC_STATS_BH 2008-07-16 20:31:16 -07:00
cipso_ipv4.c cipso: Relax too much careful cipso hash function. 2008-05-13 23:23:55 -07:00
datagram.c mib: add net to IP_INC_STATS_BH 2008-07-16 20:20:11 -07:00
devinet.c net: convert BUG_TRAP to generic WARN_ON 2008-07-25 21:43:18 -07:00
esp4.c [ESP]: Ensure IV is in linear part of the skb to avoid BUG() due to OOB access 2008-03-27 16:08:03 -07:00
fib_frontend.c netns: add namespace parameter to rt_cache_flush 2008-07-05 19:00:44 -07:00
fib_hash.c netns: add namespace parameter to rt_cache_flush 2008-07-05 19:00:44 -07:00
fib_lookup.h
fib_rules.c net: add fib_rules_ops to flush_cache method 2008-07-05 19:01:28 -07:00
fib_semantics.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2008-06-13 20:52:39 -07:00
fib_trie.c proc: consolidate per-net single-release callers 2008-07-18 04:07:44 -07:00
icmp.c mib: put icmpmsg statistics on struct net 2008-07-18 04:04:22 -07:00
igmp.c netns: Use net_eq() to compare net-namespaces for optimization. 2008-07-19 22:34:43 -07:00
inet_connection_sock.c net: convert BUG_TRAP to generic WARN_ON 2008-07-25 21:43:18 -07:00
inet_diag.c net: remove CVS keywords 2008-06-11 21:00:38 -07:00
inet_fragment.c net: convert BUG_TRAP to generic WARN_ON 2008-07-25 21:43:18 -07:00
inet_hashtables.c net: convert BUG_TRAP to generic WARN_ON 2008-07-25 21:43:18 -07:00
inet_lro.c net/inet_lro: remove setting skb->ip_summed when not LRO-able 2008-06-27 20:09:00 -07:00
inet_timewait_sock.c net: convert BUG_TRAP to generic WARN_ON 2008-07-25 21:43:18 -07:00
inetpeer.c net: remove CVS keywords 2008-06-11 21:00:38 -07:00
ip_forward.c mib: add net to IP_INC_STATS_BH 2008-07-16 20:20:11 -07:00
ip_fragment.c net: convert BUG_TRAP to generic WARN_ON 2008-07-25 21:43:18 -07:00
ip_gre.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2008-05-25 23:26:10 -07:00
ip_input.c mib: put ip statistics on struct net 2008-07-18 04:02:42 -07:00
ip_options.c net: remove CVS keywords 2008-06-11 21:00:38 -07:00
ip_output.c net: convert BUG_TRAP to generic WARN_ON 2008-07-25 21:43:18 -07:00
ip_sockglue.c net: remove CVS keywords 2008-06-11 21:00:38 -07:00
ipcomp.c ipcomp: Fix warnings after ipcomp consolidation. 2008-07-27 03:59:24 -07:00
ipconfig.c netns: Use net_eq() to compare net-namespaces for optimization. 2008-07-19 22:34:43 -07:00
ipip.c net: remove CVS keywords 2008-06-11 21:00:38 -07:00
ipmr.c netns: Use net_eq() to compare net-namespaces for optimization. 2008-07-19 22:34:43 -07:00
Kconfig ipsec: ipcomp - Merge IPComp implementations 2008-07-25 02:54:40 -07:00
Makefile [UDP]: Revert udplite and code split. 2008-03-06 16:22:02 -08:00
netfilter.c [NETFILTER]: Add partial checksum validation helper 2008-04-14 11:15:49 +02:00
proc.c tcp: MD5: Use MIB counter instead of warning for MD5 mismatch. 2008-07-30 03:27:25 -07:00
protocol.c net: remove CVS keywords 2008-06-11 21:00:38 -07:00
raw.c mib: add net to IP_INC_STATS 2008-07-16 20:19:49 -07:00
route.c net: missing bits of net-namespace / sysctl 2008-07-27 04:40:51 -07:00
syncookies.c syncookies: Make sure ECN is disabled 2008-07-26 02:21:54 -07:00
sysctl_net_ipv4.c net: missing bits of net-namespace / sysctl 2008-07-27 04:40:51 -07:00
tcp_bic.c [TCP]: BIC web page link is corrected. 2008-02-28 22:14:32 -08:00
tcp_cong.c tcp: Limit cwnd growth when deferring for GSO 2008-04-29 03:13:52 -07:00
tcp_cubic.c rename div64_64 to div64_u64 2008-05-01 08:03:58 -07:00
tcp_diag.c net: remove CVS keywords 2008-06-11 21:00:38 -07:00
tcp_highspeed.c
tcp_htcp.c
tcp_hybla.c net: fix returning void-valued expression warnings 2008-05-01 02:47:38 -07:00
tcp_illinois.c
tcp_input.c net: convert BUG_TRAP to generic WARN_ON 2008-07-25 21:43:18 -07:00
tcp_ipv4.c tcp: MD5: Use MIB counter instead of warning for MD5 mismatch. 2008-07-30 03:27:25 -07:00
tcp_lp.c
tcp_minisocks.c mib: add net to NET_INC_STATS_BH 2008-07-16 20:31:16 -07:00
tcp_output.c tcp: Fix bitmask test in tcp_syn_options() 2008-07-21 18:45:34 -07:00
tcp_probe.c tcp: correct kcalloc usage 2008-07-10 16:51:32 -07:00
tcp_scalable.c
tcp_timer.c net: convert BUG_TRAP to generic WARN_ON 2008-07-25 21:43:18 -07:00
tcp_vegas.c net: fix returning void-valued expression warnings 2008-05-01 02:47:38 -07:00
tcp_vegas.h
tcp_veno.c net: fix returning void-valued expression warnings 2008-05-01 02:47:38 -07:00
tcp_westwood.c
tcp_yeah.c
tcp.c net: convert BUG_TRAP to generic WARN_ON 2008-07-25 21:43:18 -07:00
tunnel4.c [IPV4] TUNNEL4: Fix incoming packet length check for inter-protocol tunnel. 2008-06-05 04:02:33 +09:00
udp_impl.h net: change proto destroy method to return void 2008-06-14 17:04:49 -07:00
udp.c udplite: Protection against coverage value wrap-around 2008-07-21 13:35:08 -07:00
udplite.c mib: put udplite statistics on struct net 2008-07-18 04:03:45 -07:00
xfrm4_input.c
xfrm4_mode_beet.c [IPSEC]: Fix BEET output 2008-03-26 16:51:09 -07:00
xfrm4_mode_transport.c
xfrm4_mode_tunnel.c xfrm: fix fragmentation for ipv4 xfrm tunnel 2008-06-17 16:38:23 -07:00
xfrm4_output.c [IPSEC]: Fix inter address family IPsec tunnel handling. 2008-03-24 14:51:51 -07:00
xfrm4_policy.c [NET] NETNS: Omit net_device->nd_net without CONFIG_NET_NS. 2008-03-26 04:39:53 +09:00
xfrm4_state.c [IPSEC]: Fix BEET output 2008-03-26 16:51:09 -07:00
xfrm4_tunnel.c [IPCOMP]: Fix reception of incompressible packets 2008-01-31 19:27:24 -08:00