]> git.baikalelectronics.ru Git - kernel.git/commitdiff
ice: Fix memory leak in ice_get_orom_civd_data()
authorJianglei Nie <niejianglei2021@163.com>
Sat, 2 Apr 2022 02:17:15 +0000 (10:17 +0800)
committerTony Nguyen <anthony.l.nguyen@intel.com>
Thu, 14 Apr 2022 15:31:01 +0000 (08:31 -0700)
A memory chunk was allocated for orom_data in ice_get_orom_civd_data()
by vzmalloc(). But when ice_read_flash_module() fails, the allocated
memory is not freed, which will lead to a memory leak.

We can fix it by freeing the orom_data when ce_read_flash_module() fails.

Fixes: a4afe8a1c9ab ("ice: reduce time to read Option ROM CIVD data")
Signed-off-by: Jianglei Nie <niejianglei2021@163.com>
Tested-by: Gurucharan <gurucharanx.g@intel.com> (A Contingent worker at Intel)
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
drivers/net/ethernet/intel/ice/ice_nvm.c

index 4eb0599714f4348d5e7b84314f5902d8a76543dd..13cdb5ea594d2f2e22650f397441ed7916e47952 100644 (file)
@@ -641,6 +641,7 @@ ice_get_orom_civd_data(struct ice_hw *hw, enum ice_bank_select bank,
        status = ice_read_flash_module(hw, bank, ICE_SR_1ST_OROM_BANK_PTR, 0,
                                       orom_data, hw->flash.banks.orom_size);
        if (status) {
+               vfree(orom_data);
                ice_debug(hw, ICE_DBG_NVM, "Unable to read Option ROM data\n");
                return status;
        }