git: cd880010c49a - main - pmcannotate: avoid accessing uninitialized local variables

From: Dimitry Andric <dim_at_FreeBSD.org>
Date: Fri, 26 Dec 2025 13:38:22 UTC
The branch main has been updated by dim:

URL: https://cgit.FreeBSD.org/src/commit/?id=cd880010c49a5d4ec529f4204d4e88cd27727255

commit cd880010c49a5d4ec529f4204d4e88cd27727255
Author:     Dimitry Andric <dim@FreeBSD.org>
AuthorDate: 2025-12-26 13:37:47 +0000
Commit:     Dimitry Andric <dim@FreeBSD.org>
CommitDate: 2025-12-26 13:37:53 +0000

    pmcannotate: avoid accessing uninitialized local variables
    
    Initialize `tbfl` and `tofl` to NULL, and check whether they are
    non-NULL before calling remove(3) on them, to avoid warnings from clang
    21 similar to:
    
        usr.sbin/pmcannotate/pmcannotate.c:746:3: error: variable 'tbfl' is uninitialized when used here [-Werror,-Wuninitialized]
          746 |                 FATAL(exec, "%s: Impossible to locate the binary file\n",
              |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          747 |                     exec);
              |                     ~~~~~
        usr.sbin/pmcannotate/pmcannotate.c:57:9: note: expanded from macro 'FATAL'
           57 |         remove(tbfl);                                                   \
              |                ^~~~
        usr.sbin/pmcannotate/pmcannotate.c:695:12: note: initialize the variable 'tbfl' to silence this warning
          695 |         char *tbfl, *tofl, *tmpdir;
              |                   ^
              |                    = NULL
        usr.sbin/pmcannotate/pmcannotate.c:746:3: error: variable 'tofl' is uninitialized when used here [-Werror,-Wuninitialized]
          746 |                 FATAL(exec, "%s: Impossible to locate the binary file\n",
              |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          747 |                     exec);
              |                     ~~~~~
        usr.sbin/pmcannotate/pmcannotate.c:58:9: note: expanded from macro 'FATAL'
           58 |         remove(tofl);                                                   \
              |                ^~~~
        usr.sbin/pmcannotate/pmcannotate.c:695:19: note: initialize the variable 'tofl' to silence this warning
          695 |         char *tbfl, *tofl, *tmpdir;
              |                          ^
              |                           = NULL
    
    MFC after:      3 days
---
 usr.sbin/pmcannotate/pmcannotate.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/usr.sbin/pmcannotate/pmcannotate.c b/usr.sbin/pmcannotate/pmcannotate.c
index 5958ff615e4b..6f3e121b4729 100644
--- a/usr.sbin/pmcannotate/pmcannotate.c
+++ b/usr.sbin/pmcannotate/pmcannotate.c
@@ -54,8 +54,10 @@
 	if ((ptr) != NULL)						\
 		perror(ptr);						\
 	fprintf(stderr, ##x);						\
-	remove(tbfl);							\
-	remove(tofl);							\
+	if (tbfl != NULL)						\
+		remove(tbfl);						\
+	if (tofl != NULL)						\
+		remove(tofl);						\
 	exit(EXIT_FAILURE);						\
 } while (0)
 
@@ -702,6 +704,8 @@ main(int argc, char *argv[])
 	uintptr_t tmppc, ostart, oend;
 	int cget, asmsrc;
 
+	tbfl = NULL;
+	tofl = NULL;
 	exec = argv[0];
 	ofile = NULL;
 	bin = NULL;