git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git]
/
net
/
ipv4
/
netfilter
/
ip_nat_proto_icmp.c
diff --git
a/net/ipv4/netfilter/ip_nat_proto_icmp.c
b/net/ipv4/netfilter/ip_nat_proto_icmp.c
index
31a3f4c
..
fb716ed
100644
(file)
--- a/
net/ipv4/netfilter/ip_nat_proto_icmp.c
+++ b/
net/ipv4/netfilter/ip_nat_proto_icmp.c
@@
-24,8
+24,8
@@
icmp_in_range(const struct ip_conntrack_tuple *tuple,
const union ip_conntrack_manip_proto *min,
const union ip_conntrack_manip_proto *max)
{
const union ip_conntrack_manip_proto *min,
const union ip_conntrack_manip_proto *max)
{
- return
(tuple->src.u.icmp.id >= min->icmp.id
-
&& tuple->src.u.icmp.id <=
max->icmp.id);
+ return
ntohs(tuple->src.u.icmp.id) >= ntohs(min->icmp.id) &&
+
ntohs(tuple->src.u.icmp.id) <= ntohs(
max->icmp.id);
}
static int
}
static int
@@
-66,10
+66,8
@@
icmp_manip_pkt(struct sk_buff **pskb,
return 0;
hdr = (struct icmphdr *)((*pskb)->data + hdroff);
return 0;
hdr = (struct icmphdr *)((*pskb)->data + hdroff);
-
- hdr->checksum = ip_nat_cheat_check(hdr->un.echo.id ^ 0xFFFF,
- tuple->src.u.icmp.id,
- hdr->checksum);
+ nf_proto_csum_replace2(&hdr->checksum, *pskb,
+ hdr->un.echo.id, tuple->src.u.icmp.id, 0);
hdr->un.echo.id = tuple->src.u.icmp.id;
return 1;
}
hdr->un.echo.id = tuple->src.u.icmp.id;
return 1;
}