[NETFILTER]: Use correct byteorder in ICMP NAT
Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
21f930e4ab
commit
74bb421da7
|
@ -35,16 +35,17 @@ icmp_unique_tuple(struct ip_conntrack_tuple *tuple,
|
||||||
const struct ip_conntrack *conntrack)
|
const struct ip_conntrack *conntrack)
|
||||||
{
|
{
|
||||||
static u_int16_t id;
|
static u_int16_t id;
|
||||||
unsigned int range_size
|
unsigned int range_size;
|
||||||
= (unsigned int)range->max.icmp.id - range->min.icmp.id + 1;
|
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
|
||||||
|
range_size = ntohs(range->max.icmp.id) - ntohs(range->min.icmp.id) + 1;
|
||||||
/* If no range specified... */
|
/* If no range specified... */
|
||||||
if (!(range->flags & IP_NAT_RANGE_PROTO_SPECIFIED))
|
if (!(range->flags & IP_NAT_RANGE_PROTO_SPECIFIED))
|
||||||
range_size = 0xFFFF;
|
range_size = 0xFFFF;
|
||||||
|
|
||||||
for (i = 0; i < range_size; i++, id++) {
|
for (i = 0; i < range_size; i++, id++) {
|
||||||
tuple->src.u.icmp.id = range->min.icmp.id + (id % range_size);
|
tuple->src.u.icmp.id = htons(ntohs(range->min.icmp.id) +
|
||||||
|
(id % range_size));
|
||||||
if (!ip_nat_used_tuple(tuple, conntrack))
|
if (!ip_nat_used_tuple(tuple, conntrack))
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
Reference in New Issue