projects
/
platform
/
kernel
/
linux-starfive.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
usb: aqc111: check packet for fixup for true limit
[platform/kernel/linux-starfive.git]
/
drivers
/
net
/
usb
/
aqc111.c
diff --git
a/drivers/net/usb/aqc111.c
b/drivers/net/usb/aqc111.c
index
a017e9d
..
7b8afa5
100644
(file)
--- a/
drivers/net/usb/aqc111.c
+++ b/
drivers/net/usb/aqc111.c
@@
-1079,17
+1079,17
@@
static int aqc111_rx_fixup(struct usbnet *dev, struct sk_buff *skb)
u16 pkt_count = 0;
u64 desc_hdr = 0;
u16 vlan_tag = 0;
u16 pkt_count = 0;
u64 desc_hdr = 0;
u16 vlan_tag = 0;
- u32 skb_len
= 0
;
+ u32 skb_len;
if (!skb)
goto err;
if (!skb)
goto err;
- if (skb->len == 0)
+ skb_len = skb->len;
+ if (skb_len < sizeof(desc_hdr))
goto err;
goto err;
- skb_len = skb->len;
/* RX Descriptor Header */
/* RX Descriptor Header */
- skb_trim(skb, skb
->
len - sizeof(desc_hdr));
+ skb_trim(skb, skb
_
len - sizeof(desc_hdr));
desc_hdr = le64_to_cpup((u64 *)skb_tail_pointer(skb));
/* Check these packets */
desc_hdr = le64_to_cpup((u64 *)skb_tail_pointer(skb));
/* Check these packets */