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
This commit is contained in:
Dimitry Andric
2025-12-26 14:37:47 +01:00
parent 3054e22e45
commit cd880010c4
+6 -2
View File
@@ -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;