diff options
author | Patrick McHardy <kaber@trash.net> | 2005-07-22 12:50:29 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2005-07-22 12:50:29 -0700 |
commit | d04b4f8c1c9766e49fad6a141fc61cb30db69a5c (patch) | |
tree | 4355aafff80fc9a09597d4990a45b51b30359cf3 | |
parent | 4c1217deeb148ff8ab838ba4f1875d0f52dea343 (diff) | |
download | op-kernel-dev-d04b4f8c1c9766e49fad6a141fc61cb30db69a5c.zip op-kernel-dev-d04b4f8c1c9766e49fad6a141fc61cb30db69a5c.tar.gz |
[NETFILTER]: Fix potential memory corruption in NAT code (aka memory NAT)
The portptr pointing to the port in the conntrack tuple is declared static,
which could result in memory corruption when two packets of the same
protocol are NATed at the same time and one conntrack goes away.
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | net/ipv4/netfilter/ip_nat_proto_tcp.c | 3 | ||||
-rw-r--r-- | net/ipv4/netfilter/ip_nat_proto_udp.c | 3 |
2 files changed, 4 insertions, 2 deletions
diff --git a/net/ipv4/netfilter/ip_nat_proto_tcp.c b/net/ipv4/netfilter/ip_nat_proto_tcp.c index a91cfce..a98e36d 100644 --- a/net/ipv4/netfilter/ip_nat_proto_tcp.c +++ b/net/ipv4/netfilter/ip_nat_proto_tcp.c @@ -40,7 +40,8 @@ tcp_unique_tuple(struct ip_conntrack_tuple *tuple, enum ip_nat_manip_type maniptype, const struct ip_conntrack *conntrack) { - static u_int16_t port, *portptr; + static u_int16_t port; + u_int16_t *portptr; unsigned int range_size, min, i; if (maniptype == IP_NAT_MANIP_SRC) diff --git a/net/ipv4/netfilter/ip_nat_proto_udp.c b/net/ipv4/netfilter/ip_nat_proto_udp.c index c669e3b..9f66e56 100644 --- a/net/ipv4/netfilter/ip_nat_proto_udp.c +++ b/net/ipv4/netfilter/ip_nat_proto_udp.c @@ -41,7 +41,8 @@ udp_unique_tuple(struct ip_conntrack_tuple *tuple, enum ip_nat_manip_type maniptype, const struct ip_conntrack *conntrack) { - static u_int16_t port, *portptr; + static u_int16_t port; + u_int16_t *portptr; unsigned int range_size, min, i; if (maniptype == IP_NAT_MANIP_SRC) |