From: Xiaole He Date: Tue, 20 Dec 2022 13:06:34 +0000 (+0800) Subject: elf-reader: reclaim fd and mem before break X-Git-Tag: upstream/2.3~92 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=83bbc679e509047f171fa4db9faa0d05cd26a258;p=platform%2Fupstream%2Flibabigail.git elf-reader: reclaim fd and mem before break In elf::reader::priv::locate_alt_ctf_debug_info from src/abg-elf-reader.cc, the resources held by the hdl and fd variables aren't necessary released because the control-flow gets out of the loop too early. This patch fixes the problem. * src/abg-elf-reader.cc (elf::reader::priv::locate_alt_ctf_debug_info): Reclaim fd and mem before break. Also, do not try to locate the debug info it's already been located. Signed-off-by: Xiaole He Signed-off-by: Dodji Seketeli --- diff --git a/src/abg-elf-reader.cc b/src/abg-elf-reader.cc index c07f0655..656418e3 100644 --- a/src/abg-elf-reader.cc +++ b/src/abg-elf-reader.cc @@ -420,6 +420,9 @@ struct reader::priv void locate_alt_ctf_debug_info() { + if (alt_ctf_section) + return; + Elf_Scn *section = elf_helpers::find_section(elf_handle, ".gnu_debuglink", @@ -453,10 +456,12 @@ struct reader::priv // unlikely .ctf was designed to be present in stripped file alt_ctf_section = elf_helpers::find_section(hdl, ".ctf", SHT_PROGBITS); - break; elf_end(hdl); close(fd); + + if (alt_ctf_section) + break; } }