igb: check memory allocation failure
authorChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Sun, 27 Aug 2017 06:39:51 +0000 (08:39 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 25 Dec 2017 13:26:26 +0000 (14:26 +0100)
[ Upstream commit 18eb86362a52f0af933cc0fd5e37027317eb2d1c ]

Check memory allocation failures and return -ENOMEM in such cases, as
already done for other memory allocations in this function.

This avoids NULL pointers dereference.

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Acked-by: PJ Waskiewicz <peter.waskiewicz.jr@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/ethernet/intel/igb/igb_main.c

index b0031c5..667dbc7 100644 (file)
@@ -3162,6 +3162,8 @@ static int igb_sw_init(struct igb_adapter *adapter)
        /* Setup and initialize a copy of the hw vlan table array */
        adapter->shadow_vfta = kcalloc(E1000_VLAN_FILTER_TBL_SIZE, sizeof(u32),
                                       GFP_ATOMIC);
+       if (!adapter->shadow_vfta)
+               return -ENOMEM;
 
        /* This call may decrease the number of queues */
        if (igb_init_interrupt_scheme(adapter, true)) {