diff options
author | Mark Wielaard <mark@klomp.org> | 2023-03-03 14:13:49 +0100 |
---|---|---|
committer | Mark Wielaard <mark@klomp.org> | 2023-03-03 14:13:49 +0100 |
commit | b1fa74956793141771a6514c445d0884fdef3841 (patch) | |
tree | d3e81e2dbed1430c689f4ac6290a3cde7598e3b6 /src/ChangeLog | |
parent | e24d8a4a3ea106608bb3e8d33c4639cf71d0f08d (diff) | |
download | elfutils-b1fa74956793141771a6514c445d0884fdef3841.tar.gz |
readelf: Fix use-after-free ebl pointer issue
With -flto gcc 13 sees that we use the ebl pointer after closing and
freeing it.
In function ‘process_elf_file’,
inlined from ‘process_dwflmod’ at readelf.c:818:3:
readelf.c:1070:6: error: pointer ‘ebl_18’ used after ‘free’ [-Werror=use-after-free]
1070 | if (pure_ebl != ebl)
| ^
In function ‘ebl_closebackend’,
inlined from ‘process_elf_file’ at readelf.c:1068:3,
inlined from ‘process_dwflmod’ at readelf.c:818:3:
../libebl/eblclosebackend.c:47:7: note: call to ‘free’ here
47 | free (ebl);
| ^
Fix by only calling ebl_closebackend after using it in the comparison.
Signed-off-by: Mark Wielaard <mark@klomp.org>
Diffstat (limited to 'src/ChangeLog')
-rw-r--r-- | src/ChangeLog | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 699d98ee..c26dafdd 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2023-03-03 Mark Wielaard <mark@klomp.org> + + * readelf (process_elf_file): ebl_closebackend only after + comparing ebl pointer. + 2023-02-12 Mark Wielaard <mark@klomp.org> * readelf.c (print_attributes): Add comment about check. |