efi: libstub: only free priv.runtime_map when allocated
authorHagar Hemdan <hagarhem@amazon.com>
Tue, 23 Apr 2024 13:59:26 +0000 (13:59 +0000)
committerArd Biesheuvel <ardb@kernel.org>
Mon, 29 Apr 2024 15:47:32 +0000 (17:47 +0200)
commit4b2543f7e1e6b91cfc8dd1696e3cdf01c3ac8974
treee29b2734320e8c004c16072a8065c1ede1a49868
parentcda30c6542c8bb445bc84f6616cac8d012547f0a
efi: libstub: only free priv.runtime_map when allocated

priv.runtime_map is only allocated when efi_novamap is not set.
Otherwise, it is an uninitialized value.  In the error path, it is freed
unconditionally.  Avoid passing an uninitialized value to free_pool.
Free priv.runtime_map only when it was allocated.

This bug was discovered and resolved using Coverity Static Analysis
Security Testing (SAST) by Synopsys, Inc.

Fixes: f80d26043af9 ("efi: libstub: avoid efi_get_memory_map() for allocating the virt map")
Cc: <stable@vger.kernel.org>
Signed-off-by: Hagar Hemdan <hagarhem@amazon.com>
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
drivers/firmware/efi/libstub/fdt.c