]> git.karo-electronics.de Git - linux-beck.git/commitdiff
netfilter: nf_nat: use local variable hdrlen
authorChangli Gao <xiaosuo@gmail.com>
Mon, 2 Aug 2010 15:15:30 +0000 (17:15 +0200)
committerPatrick McHardy <kaber@trash.net>
Mon, 2 Aug 2010 15:15:30 +0000 (17:15 +0200)
Use local variable hdrlen instead of ip_hdrlen(skb).

Signed-off-by: Changli Gao <xiaosuo@gmail.com>
Signed-off-by: Patrick McHardy <kaber@trash.net>
net/ipv4/netfilter/nf_nat_core.c

index 037a3a6599308e1a783d8c832cc3f58d07d74198..8c8632d9b93cead0cd115945a9566d1e57829667 100644 (file)
@@ -435,7 +435,7 @@ int nf_nat_icmp_reply_translation(struct nf_conn *ct,
        if (!skb_make_writable(skb, hdrlen + sizeof(*inside)))
                return 0;
 
-       inside = (void *)skb->data + ip_hdrlen(skb);
+       inside = (void *)skb->data + hdrlen;
 
        /* We're actually going to mangle it beyond trivial checksum
           adjustment, so make sure the current checksum is correct. */
@@ -465,12 +465,10 @@ int nf_nat_icmp_reply_translation(struct nf_conn *ct,
        /* rcu_read_lock()ed by nf_hook_slow */
        l4proto = __nf_ct_l4proto_find(PF_INET, inside->ip.protocol);
 
-       if (!nf_ct_get_tuple(skb,
-                            ip_hdrlen(skb) + sizeof(struct icmphdr),
-                            (ip_hdrlen(skb) +
+       if (!nf_ct_get_tuple(skb, hdrlen + sizeof(struct icmphdr),
+                            (hdrlen +
                              sizeof(struct icmphdr) + inside->ip.ihl * 4),
-                            (u_int16_t)AF_INET,
-                            inside->ip.protocol,
+                            (u_int16_t)AF_INET, inside->ip.protocol,
                             &inner, l3proto, l4proto))
                return 0;
 
@@ -479,15 +477,13 @@ int nf_nat_icmp_reply_translation(struct nf_conn *ct,
           pass all hooks (locally-generated ICMP).  Consider incoming
           packet: PREROUTING (DST manip), routing produces ICMP, goes
           through POSTROUTING (which must correct the DST manip). */
-       if (!manip_pkt(inside->ip.protocol, skb,
-                      ip_hdrlen(skb) + sizeof(inside->icmp),
-                      &ct->tuplehash[!dir].tuple,
-                      !manip))
+       if (!manip_pkt(inside->ip.protocol, skb, hdrlen + sizeof(inside->icmp),
+                      &ct->tuplehash[!dir].tuple, !manip))
                return 0;
 
        if (skb->ip_summed != CHECKSUM_PARTIAL) {
                /* Reloading "inside" here since manip_pkt inner. */
-               inside = (void *)skb->data + ip_hdrlen(skb);
+               inside = (void *)skb->data + hdrlen;
                inside->icmp.checksum = 0;
                inside->icmp.checksum =
                        csum_fold(skb_checksum(skb, hdrlen,