mirror of
https://github.com/openharmony/third_party_elfutils.git
synced 2026-07-01 06:41:51 -04:00
libdwfl: Fix fd leak/closing wrong fd after dwfl_core_file_report()
dwfl_segment_report_module() (used only by dwfl_core_file_report()) opens a file descriptor and/or an Elf handle, reports a module, and assigns mod->main.elf. However, it doesn't assign mod->main.fd, so it is left as 0. This causes two problems: 1. We leak the file descriptor for the module. 2. When we free the module, we close file descriptor 0 (stdin). Fix it by assigning mod->main.fd. Signed-off-by: Omar Sandoval <osandov@fb.com>
This commit is contained in:
committed by
Mark Wielaard
parent
1b1433d567
commit
d37f6ea7e3
@@ -1,3 +1,8 @@
|
||||
2019-08-05 Omar Sandoval <osandov@fb.com>
|
||||
|
||||
* dwfl_segment_report_module.c (dwfl_segment_report_module): Assign
|
||||
mod->main.fd.
|
||||
|
||||
2019-04-28 Mark Wielaard <mark@klomp.org>
|
||||
|
||||
* frame_unwind.c (expr_eval): Make sure we left shift a unsigned
|
||||
|
||||
@@ -967,6 +967,7 @@ dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name,
|
||||
{
|
||||
/* Install the file in the module. */
|
||||
mod->main.elf = elf;
|
||||
mod->main.fd = fd;
|
||||
elf = NULL;
|
||||
fd = -1;
|
||||
mod->main.vaddr = module_start - bias;
|
||||
|
||||
Reference in New Issue
Block a user