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

Reply via email to