summaryrefslogtreecommitdiffstats
path: root/include/linux/netfilter_ipv4
diff options
context:
space:
mode:
authorPatrick McHardy2005-09-07 00:09:43 +0200
committerDavid S. Miller2005-09-07 00:09:43 +0200
commit03486a4f838c55481317fca5ac2e7d12550a4fb7 (patch)
tree9c5e5cd835102d67198e5fd1c6756f3b0de65a2c /include/linux/netfilter_ipv4
parent[NETFILTER]: Fix CONNMARK Kconfig dependency (diff)
downloadkernel-qcow2-linux-03486a4f838c55481317fca5ac2e7d12550a4fb7.tar.gz
kernel-qcow2-linux-03486a4f838c55481317fca5ac2e7d12550a4fb7.tar.xz
kernel-qcow2-linux-03486a4f838c55481317fca5ac2e7d12550a4fb7.zip
[NETFILTER]: Handle NAT module load race
When the NAT module is loaded when connections are already confirmed it must not change their tuples anymore. This is especially important with CONFIG_NETFILTER_DEBUG, the netfilter listhelp functions will refuse to remove an entry from a list when it can not be found on the list, so when a changed tuple hashes to a new bucket the entry is kept in the list until and after the conntrack is freed. Allocate the exact conntrack tuple for NAT for already confirmed connections or drop them if that fails. Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux/netfilter_ipv4')
-rw-r--r--include/linux/netfilter_ipv4/ip_nat_rule.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/include/linux/netfilter_ipv4/ip_nat_rule.h b/include/linux/netfilter_ipv4/ip_nat_rule.h
index fecd2a06dcd8..73b9552e6a89 100644
--- a/include/linux/netfilter_ipv4/ip_nat_rule.h
+++ b/include/linux/netfilter_ipv4/ip_nat_rule.h
@@ -19,5 +19,10 @@ extern unsigned int
alloc_null_binding(struct ip_conntrack *conntrack,
struct ip_nat_info *info,
unsigned int hooknum);
+
+extern unsigned int
+alloc_null_binding_confirmed(struct ip_conntrack *conntrack,
+ struct ip_nat_info *info,
+ unsigned int hooknum);
#endif
#endif /* _IP_NAT_RULE_H */