test-elf_cntl_gelf_getshdr conditionally closes a file descriptor depending on a command line argument. This causes an error when run under valgrind --track-fds=yes.
Fix this by unconditionally closing the fd. Signed-off-by: Aaron Merey <ame...@redhat.com> --- tests/test-elf_cntl_gelf_getshdr.c | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/tests/test-elf_cntl_gelf_getshdr.c b/tests/test-elf_cntl_gelf_getshdr.c index 7371110c..9f78bec2 100644 --- a/tests/test-elf_cntl_gelf_getshdr.c +++ b/tests/test-elf_cntl_gelf_getshdr.c @@ -43,22 +43,12 @@ main (int argc, char *argv[]) } bool do_mmap = false; - bool close_fd = false; if (strcmp (argv[1], "READ") == 0) - { - do_mmap = false; - close_fd = false; - } + do_mmap = false; else if (strcmp (argv[1], "MMAP") == 0) - { - do_mmap = true; - close_fd = false; - } + do_mmap = true; else if (strcmp (argv[1], "FDREAD") == 0) - { - do_mmap = false; - close_fd = true; - } + do_mmap = false; else { fprintf (stderr, "First arg needs to be 'READ', 'MMAP' or 'FDREAD'\n"); @@ -83,7 +73,7 @@ main (int argc, char *argv[]) exit (2); } - if (! do_mmap && close_fd) + if (! do_mmap) { if (elf_cntl (elf, ELF_C_FDREAD) < 0) { @@ -91,7 +81,6 @@ main (int argc, char *argv[]) elf_errmsg (-1)); exit (1); } - close (fd); } Elf_Scn *scn = NULL; @@ -103,5 +92,6 @@ main (int argc, char *argv[]) } elf_end (elf); + close (fd); exit (0); } -- 2.48.1