When building with LTO gcc believes elf_fd can be used uninitialized:

In function ‘sysprof_init_dwfl’,
    inlined from ‘sysprof_unwind_cb’ at stacktrace.c:1235:16:
stacktrace.c:1087:7: error: ‘elf_fd’ may be used uninitialized 
[-Werror=maybe-uninitialized]
 1087 |       close (elf_fd);
      |       ^

This code won't be reached because if find_procfile doesn't initialize
elf_fd, it will return an error. But help the compiler by initializing
elf_fd to -1.

        * src/stacktrace.c (sysprof_init_dwfl): Init elf_fd to -1.

Signed-off-by: Mark Wielaard <m...@klomp.org>
---
 src/stacktrace.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/stacktrace.c b/src/stacktrace.c
index 438cb1dd0d38..b912ca5de502 100644
--- a/src/stacktrace.c
+++ b/src/stacktrace.c
@@ -1033,7 +1033,7 @@ sysprof_init_dwfl (struct sysprof_unwind_info *sui,
     }
 
   Elf *elf = NULL;
-  int elf_fd;
+  int elf_fd = -1;
   err = find_procfile (dwfl, &pid, &elf, &elf_fd);
   if (err < 0)
     {
-- 
2.47.0

Reply via email to