diff options
author | David S. Miller <davem@davemloft.net> | 2009-06-09 07:23:58 (GMT) |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-06-09 07:23:58 (GMT) |
commit | 343a99724e4431d8618bea2eb7552e12c965425a (patch) | |
tree | 757ebed1108b3609e4617e905ed48ab08f6fc00c /net/ipv4/netfilter/nf_nat_proto_sctp.c | |
parent | 4d9092bb41c8fdca45513461587d8b4ad3918f74 (diff) | |
download | linux-343a99724e4431d8618bea2eb7552e12c965425a.tar.xz |
netfilter: Use frag list abstraction interfaces.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/netfilter/nf_nat_proto_sctp.c')
-rw-r--r-- | net/ipv4/netfilter/nf_nat_proto_sctp.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/net/ipv4/netfilter/nf_nat_proto_sctp.c b/net/ipv4/netfilter/nf_nat_proto_sctp.c index 65e470b..6983e41 100644 --- a/net/ipv4/netfilter/nf_nat_proto_sctp.c +++ b/net/ipv4/netfilter/nf_nat_proto_sctp.c @@ -33,6 +33,7 @@ sctp_manip_pkt(struct sk_buff *skb, enum nf_nat_manip_type maniptype) { const struct iphdr *iph = (struct iphdr *)(skb->data + iphdroff); + struct sk_buff *frag; sctp_sctphdr_t *hdr; unsigned int hdroff = iphdroff + iph->ihl*4; __be32 oldip, newip; @@ -57,8 +58,8 @@ sctp_manip_pkt(struct sk_buff *skb, } crc32 = sctp_start_cksum((u8 *)hdr, skb_headlen(skb) - hdroff); - for (skb = skb_shinfo(skb)->frag_list; skb; skb = skb->next) - crc32 = sctp_update_cksum((u8 *)skb->data, skb_headlen(skb), + skb_walk_frags(skb, frag); + crc32 = sctp_update_cksum((u8 *)frag->data, skb_headlen(frag), crc32); crc32 = sctp_end_cksum(crc32); hdr->checksum = crc32; |