]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
i40e/i40evf: Fix use after free in Rx cleanup path
authorAlexander Duyck <alexander.h.duyck@intel.com>
Tue, 21 Feb 2017 23:55:41 +0000 (15:55 -0800)
committerJack Vogel <jack.vogel@oracle.com>
Sat, 10 Jun 2017 01:57:04 +0000 (18:57 -0700)
We need to reset skb back to NULL when we have freed it in the Rx cleanup
path.  I found one spot where this wasn't occurring so this patch fixes it.

Change-ID: Iaca68934200732cd4a63eb0bd83b539c95f8c4dd
Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Orabug: 26132523
(cherry picked from commit 741b8b832a57402380be79d7d11a59eaf57fff3b)
Signed-off-by: Jack Vogel <jack.vogel@oracle.com>
Reviewed-by: Brian Maly <brian.maly@oracle.com>
drivers/net/ethernet/intel/i40e/i40e_txrx.c
drivers/net/ethernet/intel/i40evf/i40e_txrx.c

index 740a361eb9ef74098d4a423afd157ae7f741805b..29c8b9acbe9e665ce56772728bf748047b8e692a 100644 (file)
@@ -1904,6 +1904,7 @@ static int i40e_clean_rx_irq(struct i40e_ring *rx_ring, int budget)
                 */
                if (unlikely(i40e_test_staterr(rx_desc, BIT(I40E_RXD_QW1_ERROR_SHIFT)))) {
                        dev_kfree_skb_any(skb);
+                       skb = NULL;
                        continue;
                }
 
index cdf83f6e3cda25c3946f90490253e34890df631d..69cdb46cdb18fff1e79a57bda7d15852ae2132a3 100644 (file)
@@ -1261,6 +1261,7 @@ static int i40e_clean_rx_irq(struct i40e_ring *rx_ring, int budget)
                 */
                if (unlikely(i40e_test_staterr(rx_desc, BIT(I40E_RXD_QW1_ERROR_SHIFT)))) {
                        dev_kfree_skb_any(skb);
+                       skb = NULL;
                        continue;
                }