mlx4_en: Fix read buffer overflow in mlx4_en_complete_rx_desc()
Subsystems (2)
PATCH 1/1 mlx4_en: Fix read buffer overflow in mlx4_en_complete_rx_desc()
If the length is less or equal to frag_prefix_size in the first iteration we write skb_frags_rx[-1] and read from priv->frag_info[-1]
Signed-off-by Roel Kluin <[email protected]>
---
drivers/net/mlx4/en_rx.c +3 -2
@@ -506,8 +506,9 @@ static int mlx4_en_complete_rx_desc(struct mlx4_en_priv *priv, PCI_DMA_FROMDEVICE); }/* Adjust size of last fragment to match actual length */ - skb_frags_rx[nr -1 ].size = length - - priv->frag_info[nr -1 ].frag_prefix_size; +if (nr >0 ) + skb_frags_rx[nr -1 ].size = length - + priv->frag_info[nr -1 ].frag_prefix_size;return nr; fail: