mirror of https://gitee.com/openkylin/linux.git
[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: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
3672558c61
commit
5185db09f4
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue