Merge pull request #7137 from smlng/driver/encx24j600/fix_overflow

driver, encx24j600: fix possible buffer overflow
master
Martine Lenders 6 years ago committed by GitHub
commit 99327c7c04

@ -360,10 +360,16 @@ static int _recv(netdev_t *netdev, void *buf, size_t len, void *info)
/* hdr.frame_len given by device contains 4 bytes checksum */
size_t payload_len = hdr.frame_len - 4;
if (buf) {
if (payload_len > len) {
/* payload exceeds buffer size */
unlock(dev);
return -ENOBUFS;
}
#ifdef MODULE_NETSTATS_L2
netdev->stats.rx_count++;
netdev->stats.rx_bytes += len;
netdev->stats.rx_bytes += payload_len;
#endif
/* read packet (without 4 bytes checksum) */
sram_op(dev, ENC_RRXDATA, 0xFFFF, buf, payload_len);

Loading…
Cancel
Save