* [PATCH] net: calxedaxgmac: throw away overrun frames
@ 2013-01-16 23:36 Rob Herring
2013-01-18 19:15 ` David Miller
0 siblings, 1 reply; 2+ messages in thread
From: Rob Herring @ 2013-01-16 23:36 UTC (permalink / raw)
To: netdev; +Cc: Rob Herring, linux-kernel
From: Rob Herring <rob.herring@calxeda.com>
The xgmac driver assumes 1 frame per descriptor. If a frame larger than
the descriptor's buffer size is received, the frame will spill over into
the next descriptor. So check for received frames that span more than one
descriptor and discard them. This prevents a crash if we receive erroneous
large packets.
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Cc: netdev@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
---
drivers/net/ethernet/calxeda/xgmac.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/net/ethernet/calxeda/xgmac.c b/drivers/net/ethernet/calxeda/xgmac.c
index b407043..f7f0290 100644
--- a/drivers/net/ethernet/calxeda/xgmac.c
+++ b/drivers/net/ethernet/calxeda/xgmac.c
@@ -548,6 +548,10 @@ static int desc_get_rx_status(struct xgmac_priv *priv, struct xgmac_dma_desc *p)
return -1;
}
+ /* All frames should fit into a single buffer */
+ if (!(status & RXDESC_FIRST_SEG) || !(status & RXDESC_LAST_SEG))
+ return -1;
+
/* Check if packet has checksum already */
if ((status & RXDESC_FRAME_TYPE) && (status & RXDESC_EXT_STATUS) &&
!(ext_status & RXDESC_IP_PAYLOAD_MASK))
--
1.7.10.4
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] net: calxedaxgmac: throw away overrun frames
2013-01-16 23:36 [PATCH] net: calxedaxgmac: throw away overrun frames Rob Herring
@ 2013-01-18 19:15 ` David Miller
0 siblings, 0 replies; 2+ messages in thread
From: David Miller @ 2013-01-18 19:15 UTC (permalink / raw)
To: robherring2; +Cc: netdev, rob.herring, linux-kernel
From: Rob Herring <robherring2@gmail.com>
Date: Wed, 16 Jan 2013 17:36:37 -0600
> From: Rob Herring <rob.herring@calxeda.com>
>
> The xgmac driver assumes 1 frame per descriptor. If a frame larger than
> the descriptor's buffer size is received, the frame will spill over into
> the next descriptor. So check for received frames that span more than one
> descriptor and discard them. This prevents a crash if we receive erroneous
> large packets.
>
> Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Applied.
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2013-01-18 19:15 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-01-16 23:36 [PATCH] net: calxedaxgmac: throw away overrun frames Rob Herring
2013-01-18 19:15 ` David Miller
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).