From: Mark Wielaard Date: Sat, 22 Jun 2024 23:09:29 +0000 (+0200) Subject: libelf: elf32_getshdr might leak section header when out of memory X-Git-Tag: elfutils-0.192~78 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=563d9d8d12c123ad48fd55a5b0e17840f5e78080;p=thirdparty%2Felfutils.git libelf: elf32_getshdr might leak section header when out of memory Found by GCC -fanalyzer. When allocating the notcvt buffer fails we leak the shdr. goto free_and_out on malloc failure. * libelf/elf32_getshdr.c (load_shdr_wrlock): goto free_and_out on second malloc failure. Signed-off-by: Mark Wielaard --- diff --git a/libelf/elf32_getshdr.c b/libelf/elf32_getshdr.c index fc696302..19b690a8 100644 --- a/libelf/elf32_getshdr.c +++ b/libelf/elf32_getshdr.c @@ -126,7 +126,7 @@ load_shdr_wrlock (Elf_Scn *scn) if (unlikely (notcvt == NULL)) { __libelf_seterrno (ELF_E_NOMEM); - goto out; + goto free_and_out; } memcpy (notcvt, ((char *) elf->map_address + elf->start_offset + ehdr->e_shoff),