[U-Boot] [PATCH 5/7] common: avb_verify: Fix memory leaks

Igor Opaniuk igor.opaniuk at linaro.org
Thu Aug 16 09:18:50 UTC 2018


Reviewed-by: Igor Opaniuk <igor.opaniuk at linaro.org>

On 14 August 2018 at 03:43, Eugeniu Rosca <roscaeugeniu at gmail.com> wrote:
> Cppcheck (v1.85) reports w/o this patch:
>
> [common/avb_verify.c:351]: (error) Memory leak: part
> [common/avb_verify.c:356]: (error) Memory leak: part
> [common/avb_verify.c:361]: (error) Memory leak: part
> [common/avb_verify.c:366]: (error) Memory leak: part
>
> Signed-off-by: Eugeniu Rosca <erosca at de.adit-jv.com>
> ---
>  common/avb_verify.c | 13 ++++++++-----
>  1 file changed, 8 insertions(+), 5 deletions(-)
>
> diff --git a/common/avb_verify.c b/common/avb_verify.c
> index 9c90e1b4ae5c..58cfa1aa7de8 100644
> --- a/common/avb_verify.c
> +++ b/common/avb_verify.c
> @@ -348,34 +348,37 @@ static struct mmc_part *get_partition(AvbOps *ops, const char *partition)
>         part->mmc = find_mmc_device(dev_num);
>         if (!part->mmc) {
>                 printf("No MMC device at slot %x\n", dev_num);
> -               return NULL;
> +               goto err;
>         }
>
>         if (mmc_init(part->mmc)) {
>                 printf("MMC initialization failed\n");
> -               return NULL;
> +               goto err;
>         }
>
>         ret = mmc_switch_part(part->mmc, part_num);
>         if (ret)
> -               return NULL;
> +               goto err;
>
>         mmc_blk = mmc_get_blk_desc(part->mmc);
>         if (!mmc_blk) {
>                 printf("Error - failed to obtain block descriptor\n");
> -               return NULL;
> +               goto err;
>         }
>
>         ret = part_get_info_by_name(mmc_blk, partition, &part->info);
>         if (!ret) {
>                 printf("Can't find partition '%s'\n", partition);
> -               return NULL;
> +               goto err;
>         }
>
>         part->dev_num = dev_num;
>         part->mmc_blk = mmc_blk;
>
>         return part;
> +err:
> +       free(part);
> +       return NULL;
>  }
>
>  static AvbIOResult mmc_byte_io(AvbOps *ops,
> --
> 2.18.0
>



-- 
Regards,
Igor Opaniuk


More information about the U-Boot mailing list