Commit 5185db09 authored by David S. Miller's avatar David S. Miller

[LLC]: Use pskb_trim_rcsum() in llc_fixup_skb().

Kernel Bugzilla #6409

If we use plain skb_trim(), that's wrong, because if
the SKB is cloned, and it can be because we unshared
it in the caller, we have to allow reallocation.  The
pskb_trim*() family of routines is therefore the most
appropriate here.
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 3672558c
...@@ -118,7 +118,8 @@ static inline int llc_fixup_skb(struct sk_buff *skb) ...@@ -118,7 +118,8 @@ static inline int llc_fixup_skb(struct sk_buff *skb)
u16 pdulen = eth_hdr(skb)->h_proto, u16 pdulen = eth_hdr(skb)->h_proto,
data_size = ntohs(pdulen) - llc_len; data_size = ntohs(pdulen) - llc_len;
skb_trim(skb, data_size); if (unlikely(pskb_trim_rcsum(skb, data_size)))
return 0;
} }
return 1; return 1;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment