Skip to content

Commit

Permalink
[IPV6]: Need to use pskb_trim_rcsum().
Browse files Browse the repository at this point in the history
Fix pskb_trim usage in ipv6. Only the udp one is really
a bug, other places are just doing equivalent code.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Stephen Hemminger authored and David S. Miller committed Sep 8, 2005
1 parent e50ef93 commit 42ca89c
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 12 deletions.
9 changes: 4 additions & 5 deletions net/ipv6/exthdrs.c
Original file line number Diff line number Diff line change
Expand Up @@ -459,11 +459,10 @@ static int ipv6_hop_jumbo(struct sk_buff *skb, int optoff)
IP6_INC_STATS_BH(IPSTATS_MIB_INTRUNCATEDPKTS);
goto drop;
}
if (pkt_len + sizeof(struct ipv6hdr) < skb->len) {
__pskb_trim(skb, pkt_len + sizeof(struct ipv6hdr));
if (skb->ip_summed == CHECKSUM_HW)
skb->ip_summed = CHECKSUM_NONE;
}

if (pskb_trim_rcsum(skb, pkt_len + sizeof(struct ipv6hdr)))
goto drop;

return 1;

drop:
Expand Down
9 changes: 3 additions & 6 deletions net/ipv6/reassembly.c
Original file line number Diff line number Diff line change
Expand Up @@ -479,12 +479,9 @@ static void ip6_frag_queue(struct frag_queue *fq, struct sk_buff *skb,
/* Point into the IP datagram 'data' part. */
if (!pskb_pull(skb, (u8 *) (fhdr + 1) - skb->data))
goto err;
if (end-offset < skb->len) {
if (pskb_trim(skb, end - offset))
goto err;
if (skb->ip_summed != CHECKSUM_UNNECESSARY)
skb->ip_summed = CHECKSUM_NONE;
}

if (pskb_trim_rcsum(skb, end - offset))
goto err;

/* Find out which fragments are in front and at the back of us
* in the chain of fragments so far. We must know where to put
Expand Down
2 changes: 1 addition & 1 deletion net/ipv6/udp.c
Original file line number Diff line number Diff line change
Expand Up @@ -483,7 +483,7 @@ static int udpv6_rcv(struct sk_buff **pskb, unsigned int *nhoffp)
}

if (ulen < skb->len) {
if (__pskb_trim(skb, ulen))
if (pskb_trim_rcsum(skb, ulen))
goto discard;
saddr = &skb->nh.ipv6h->saddr;
daddr = &skb->nh.ipv6h->daddr;
Expand Down

0 comments on commit 42ca89c

Please sign in to comment.