[dpdk-dev] net/cxgbe: fix memory leak

Message ID 201709050902.v8592Tm3013413@mse01.zte.com.cn (mailing list archive)
State Accepted, archived
Delegated to: Ferruh Yigit
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Congwen Zhang Sept. 5, 2017, 8:46 a.m. UTC
  In function t4_wr_mbox_meat_timeout(), Dynamic memory stored
in 'temp' not free when the functon return, It possible memory
leak.

Signed-off-by: Congwen Zhang <zhang.congwen@zte.com.cn>
---
 drivers/net/cxgbe/base/t4_hw.c | 3 +++
 1 file changed, 3 insertions(+)
  

Comments

Rahul Lakkireddy Sept. 6, 2017, 9:25 a.m. UTC | #1
On Tuesday, September 09/05/17, 2017 at 14:16:57 +0530, Congwen Zhang wrote:
> In function t4_wr_mbox_meat_timeout(), Dynamic memory stored
> in 'temp' not free when the functon return, It possible memory
> leak.
> 
> Signed-off-by: Congwen Zhang <zhang.congwen@zte.com.cn>
> ---
>  drivers/net/cxgbe/base/t4_hw.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/drivers/net/cxgbe/base/t4_hw.c b/drivers/net/cxgbe/base/t4_hw.c
> index a8ccea0..013d996 100644
> --- a/drivers/net/cxgbe/base/t4_hw.c
> +++ b/drivers/net/cxgbe/base/t4_hw.c
> @@ -403,6 +403,7 @@ int t4_wr_mbox_meat_timeout(struct adapter *adap, int mbox,
>  			t4_os_atomic_list_del(&entry, &adap->mbox_list,
>  					      &adap->mbox_lock);
>  			t4_report_fw_error(adap);
> +			free(temp);
>  			return (pcie_fw & F_PCIE_FW_ERR) ? -ENXIO : -EBUSY;
>  		}
>  
> @@ -446,6 +447,7 @@ int t4_wr_mbox_meat_timeout(struct adapter *adap, int mbox,
>  							 &adap->mbox_list,
>  							 &adap->mbox_lock));
>  		t4_report_fw_error(adap);
> +		free(temp);
>  		return (v == X_MBOWNER_FW ? -EBUSY : -ETIMEDOUT);
>  	}
>  
> @@ -546,6 +548,7 @@ int t4_wr_mbox_meat_timeout(struct adapter *adap, int mbox,
>  			T4_OS_MBOX_LOCKING(
>  				t4_os_atomic_list_del(&entry, &adap->mbox_list,
>  						      &adap->mbox_lock));
> +			free(temp);
>  			return -G_FW_CMD_RETVAL((int)res);
>  		}
>  	}
> -- 
> 1.8.3.1
> 

Thanks for the fix!

Acked-by: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
  
Ferruh Yigit Sept. 6, 2017, 2:44 p.m. UTC | #2
On 9/6/2017 10:25 AM, Rahul Lakkireddy wrote:
> On Tuesday, September 09/05/17, 2017 at 14:16:57 +0530, Congwen Zhang wrote:
>> In function t4_wr_mbox_meat_timeout(), Dynamic memory stored
>> in 'temp' not free when the functon return, It possible memory
>> leak.

Fixes: 3bd122eef2cc ("cxgbe/base: add hardware API for Chelsio T5 series
adapters")
Cc: stable@dpdk.org

>> Signed-off-by: Congwen Zhang <zhang.congwen@zte.com.cn>

> Acked-by: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>

Applied to dpdk-next-net/master, thanks.
  

Patch

diff --git a/drivers/net/cxgbe/base/t4_hw.c b/drivers/net/cxgbe/base/t4_hw.c
index a8ccea0..013d996 100644
--- a/drivers/net/cxgbe/base/t4_hw.c
+++ b/drivers/net/cxgbe/base/t4_hw.c
@@ -403,6 +403,7 @@  int t4_wr_mbox_meat_timeout(struct adapter *adap, int mbox,
 			t4_os_atomic_list_del(&entry, &adap->mbox_list,
 					      &adap->mbox_lock);
 			t4_report_fw_error(adap);
+			free(temp);
 			return (pcie_fw & F_PCIE_FW_ERR) ? -ENXIO : -EBUSY;
 		}
 
@@ -446,6 +447,7 @@  int t4_wr_mbox_meat_timeout(struct adapter *adap, int mbox,
 							 &adap->mbox_list,
 							 &adap->mbox_lock));
 		t4_report_fw_error(adap);
+		free(temp);
 		return (v == X_MBOWNER_FW ? -EBUSY : -ETIMEDOUT);
 	}
 
@@ -546,6 +548,7 @@  int t4_wr_mbox_meat_timeout(struct adapter *adap, int mbox,
 			T4_OS_MBOX_LOCKING(
 				t4_os_atomic_list_del(&entry, &adap->mbox_list,
 						      &adap->mbox_lock));
+			free(temp);
 			return -G_FW_CMD_RETVAL((int)res);
 		}
 	}