Re: [PATCH] ath10k: fix memory leak on caldata on error exit path

From: Valo, Kalle
Date: Fri Sep 02 2016 - 11:45:35 EST


Colin King <colin.king@xxxxxxxxxxxxx> writes:

> From: Colin Ian King <colin.king@xxxxxxxxxxxxx>
>
> caldata is not being free'd on the error exit path, causing
> a memory leak. kfree it to fix the leak.
>
> Signed-off-by: Colin Ian King <colin.king@xxxxxxxxxxxxx>
> ---
> drivers/net/wireless/ath/ath10k/pci.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/net/wireless/ath/ath10k/pci.c b/drivers/net/wireless/ath/ath10k/pci.c
> index 9a22c47..886337c 100644
> --- a/drivers/net/wireless/ath/ath10k/pci.c
> +++ b/drivers/net/wireless/ath/ath10k/pci.c
> @@ -2725,6 +2725,7 @@ static int ath10k_pci_hif_fetch_cal_eeprom(struct ath10k *ar, void **data,
> return 0;
>
> err_free:
> + kfree(caldata);
> kfree(data);
>
> return -EINVAL;

I don't think we should free data at all:

static int ath10k_download_cal_eeprom(struct ath10k *ar)
{
size_t data_len;
void *data = NULL;
int ret;

ret = ath10k_hif_fetch_cal_eeprom(ar, &data, &data_len);

Instead we should free only caldata, right?

--
Kalle Valo