[U-Boot] [PATCH 1/2] fdtdec: test: Fix memory leak

Simon Glass sjg at chromium.org
Mon May 20 20:51:08 UTC 2019


Hi Thierry,

On Mon, 20 May 2019 at 10:05, Thierry Reding <thierry.reding at gmail.com> wrote:
>
> From: Thierry Reding <treding at nvidia.com>
>
> Free the memory allocated to store the test FDT upon test completion to
> avoid leaking the memory. We don't bother cleaning up on test failure
> since the code is broken in that case and should be fixed, in which case
> the leak would also go away.
>
> Reported-by: Tom Rini <tom.rini at gmail.com>
> Suggested-by: Heinrich Schuchardt <xypron.glpk at gmx.de>
> Signed-off-by: Thierry Reding <treding at nvidia.com>
> ---
>  lib/fdtdec_test.c | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/lib/fdtdec_test.c b/lib/fdtdec_test.c
> index f6defe16c5a6..54efcc3d46ac 100644
> --- a/lib/fdtdec_test.c
> +++ b/lib/fdtdec_test.c
> @@ -138,6 +138,7 @@ static int run_test(const char *aliases, const char *nodes, const char *expect)
>         }
>
>         printf("pass\n");
> +       free(blob);

Strictly speaking, CHECKVAL() can cause a function return in the case
of an error.

So a better solution might be to put the code after the malloc() into
a separate function.


>         return 0;
>  }
>
> @@ -288,6 +289,7 @@ static int check_carveout(void)
>         CHECKVAL(make_fdt_carveout(fdt, FDT_SIZE, 2, 2), 0);
>         CHECKOK(check_fdt_carveout(fdt, 2, 2));
>
> +       free(fdt);
>         return 0;
>  }
>
> --
> 2.21.0
>

Regards,
Simon


More information about the U-Boot mailing list