diff options
| author | Mark Wielaard <[email protected]> | 2024-06-23 01:09:29 +0200 |
|---|---|---|
| committer | Mark Wielaard <[email protected]> | 2024-06-23 01:09:39 +0200 |
| commit | 563d9d8d12c123ad48fd55a5b0e17840f5e78080 (patch) | |
| tree | 215235b9130b5ba2d42d3c4c67a8802f487974ce /libelf | |
| parent | 906b5edb8602f188218cc432481ed893644bc534 (diff) | |
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 <[email protected]>
Diffstat (limited to 'libelf')
| -rw-r--r-- | libelf/elf32_getshdr.c | 2 |
1 files changed, 1 insertions, 1 deletions
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), |
