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:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user