drivers/net/ethernet/intel/ice/ice_nvm.c | 1 + 1 file changed, 1 insertion(+)
Line 637 allocates a memory chunk for orom_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.
Signed-off-by: Jianglei Nie <niejianglei2021@163.com>
---
drivers/net/ethernet/intel/ice/ice_nvm.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/net/ethernet/intel/ice/ice_nvm.c b/drivers/net/ethernet/intel/ice/ice_nvm.c
index 4eb0599714f4..13cdb5ea594d 100644
--- a/drivers/net/ethernet/intel/ice/ice_nvm.c
+++ b/drivers/net/ethernet/intel/ice/ice_nvm.c
@@ -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;
}
--
2.25.1
> -----Original Message----- > From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf Of > Jianglei Nie > Sent: Friday, April 1, 2022 1:31 PM > To: Brandeburg, Jesse <jesse.brandeburg@intel.com>; Nguyen, Anthony L > <anthony.l.nguyen@intel.com>; davem@davemloft.net; kuba@kernel.org > Cc: netdev@vger.kernel.org; intel-wired-lan@lists.osuosl.org; linux- > kernel@vger.kernel.org; Jianglei Nie <niejianglei2021@163.com> > Subject: [Intel-wired-lan] [PATCH] ice: Fix memory leak in > ice_get_orom_civd_data() > > Line 637 allocates a memory chunk for orom_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. > > Signed-off-by: Jianglei Nie <niejianglei2021@163.com> > --- > drivers/net/ethernet/intel/ice/ice_nvm.c | 1 + > 1 file changed, 1 insertion(+) > Tested-by: Gurucharan <gurucharanx.g@intel.com> (A Contingent worker at Intel)
On 4/1/2022 1:00 AM, Jianglei Nie wrote:
> Line 637 allocates a memory chunk for orom_data by vzmalloc(). But
References to lile numbers don't age very well.
suggest you s/Line 637/ice_get_orom_civd_data()/
> 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.
s/We can fix/Fix/
actual patch LGTM
>
> Signed-off-by: Jianglei Nie <niejianglei2021@163.com>
> ---
> drivers/net/ethernet/intel/ice/ice_nvm.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/net/ethernet/intel/ice/ice_nvm.c b/drivers/net/ethernet/intel/ice/ice_nvm.c
> index 4eb0599714f4..13cdb5ea594d 100644
> --- a/drivers/net/ethernet/intel/ice/ice_nvm.c
> +++ b/drivers/net/ethernet/intel/ice/ice_nvm.c
> @@ -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;
> }
© 2016 - 2026 Red Hat, Inc.