[ Upstream commit cd224553641848dd17800fe559e4ff5d208553e8 ]
xilinx_emaclite looks at the received data to try to determine the
Ethernet packet length but does not properly clamp it if
proto_type == ETH_P_IP or 1500 < proto_type <= 1518, causing a buffer
overflow and a panic via skb_panic() as the length exceeds the allocated
skb size.
Fix those cases.
Also add an additional unconditional check with WARN_ON() at the end.
Signed-off-by: Anssi Hannula <anssi.hannula@bitwise.fi>
Fixes:
|
||
---|---|---|
.. | ||
Kconfig | ||
ll_temac.h | ||
ll_temac_main.c | ||
ll_temac_mdio.c | ||
Makefile | ||
xilinx_axienet.h | ||
xilinx_axienet_main.c | ||
xilinx_axienet_mdio.c | ||
xilinx_emaclite.c |