Skip to content

Commit 3305c4e

Browse files
committed
realtek: eth: harden receive path
The hardware usually takes care that - a packet is no larger than the available buffer - has at least a FCS checksum of 4 bytes Nevertheless be cautious and improve the existing packet check. Just in case ... Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
1 parent 8101611 commit 3305c4e

1 file changed

Lines changed: 3 additions & 3 deletions

File tree

  • target/linux/realtek/files-6.18/drivers/net/ethernet

target/linux/realtek/files-6.18/drivers/net/ethernet/rtl838x_eth.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1010,11 +1010,11 @@ static int rteth_hw_receive(struct net_device *dev, int ring, int budget)
10101010
packet = &ctrl->rx_data[ring].packet[slot];
10111011
len = packet->len;
10121012

1013-
if (!len) {
1014-
netdev_err(dev, "empty packet received\n");
1013+
if (len < ETH_FCS_LEN || len > RING_BUFFER) {
1014+
netdev_err(dev, "invalid packet with %d bytes received\n", len);
10151015
break;
10161016
} else if (!dsa) {
1017-
len -= 4;
1017+
len -= ETH_FCS_LEN;
10181018
}
10191019

10201020
skb = netdev_alloc_skb_ip_align(dev, len);

0 commit comments

Comments
 (0)