[PATCH 1/4] sata: ahsata: Fix resource leak

Simon Glass sjg at chromium.org
Mon May 4 16:17:47 CEST 2020


On Sun, 3 May 2020 at 08:04, Peng Fan <peng.fan at nxp.com> wrote:
>
> From: Ye Li <ye.li at nxp.com>
>
> Fix coverity issue CID 3606684: Resource leak (RESOURCE_LEAK)
> leaked_storage: Variable uc_priv going out of scope leaks the storage it points to
>
> Signed-off-by: Ye Li <ye.li at nxp.com>
> Signed-off-by: Peng Fan <peng.fan at nxp.com>
> ---
>  drivers/ata/dwc_ahsata.c | 5 +++++
>  1 file changed, 5 insertions(+)

Reviewed-by: Simon Glass <sjg at chromium.org>

>
> diff --git a/drivers/ata/dwc_ahsata.c b/drivers/ata/dwc_ahsata.c
> index c2e28fe518..a775214792 100644
> --- a/drivers/ata/dwc_ahsata.c
> +++ b/drivers/ata/dwc_ahsata.c
> @@ -847,6 +847,9 @@ static int ahci_init_one(int pdev)
>         struct ahci_uc_priv *uc_priv = NULL;
>
>         uc_priv = malloc(sizeof(struct ahci_uc_priv));
> +       if (!uc_priv)
> +               return -ENOMEM;
> +
>         memset(uc_priv, 0, sizeof(struct ahci_uc_priv));
>         uc_priv->dev = pdev;
>
> @@ -871,6 +874,8 @@ static int ahci_init_one(int pdev)
>         return 0;
>
>  err_out:
> +       if (uc_priv)
> +               free(uc_priv);

Seems like you can avoid the if() since it is always allocated at this point?

The migration date for SATA was over 6 months ago so really this code
should not be used at this point.

Regards,
Simon


More information about the U-Boot mailing list