powerpc: Free fdt on error in elf64_load()
authorLakshmi Ramasubramanian <nramas@linux.microsoft.com>
Wed, 21 Apr 2021 16:36:09 +0000 (09:36 -0700)
committerRob Herring <robh@kernel.org>
Mon, 26 Apr 2021 21:27:51 +0000 (16:27 -0500)
commita45dd984dea9baa22b15fb692fe870ab5670a4a0
treef0d31d5b093ceeff797909b6e35b3bb18c3f4502
parentaed4349c5d259c970f24dd8c84255ab8a5cd4a7d
powerpc: Free fdt on error in elf64_load()

There are a few "goto out;" statements before the local variable "fdt"
is initialized through the call to of_kexec_alloc_and_setup_fdt() in
elf64_load().  This will result in an uninitialized "fdt" being passed
to kvfree() in this function if there is an error before the call to
of_kexec_alloc_and_setup_fdt().

If there is any error after fdt is allocated, but before it is
saved in the arch specific kimage struct, free the fdt.

Fixes: 3c985d31ad66 ("powerpc: Use common of_kexec_alloc_and_setup_fdt()")
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Lakshmi Ramasubramanian <nramas@linux.microsoft.com>
Signed-off-by: Rob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20210421163610.23775-1-nramas@linux.microsoft.com
arch/powerpc/kexec/elf_64.c