From: Darrick J. Wong <djwong@xxxxxxxxxx> When I turned on UBSAN on the userspace build with gcc 12.2, I get this: bulkstat.c: In function ‘bulkstat_single_f’: bulkstat.c:316:24: error: ‘ino’ may be used uninitialized [-Werror=maybe-uninitialized] 316 | ret = -xfrog_bulkstat_single(&xfd, ino, flags, &bulkstat); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ bulkstat.c:293:41: note: ‘ino’ was declared here 293 | uint64_t ino; | ^~~ I /think/ this is a failure of the gcc static checker to notice that sm will always be set to the last element of the tags[] array if it didn't set ino, but this code could be more explicit about deciding to fallback to strtoul. Signed-off-by: Darrick J. Wong <djwong@xxxxxxxxxx> --- io/bulkstat.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/io/bulkstat.c b/io/bulkstat.c index 829f6a025153..f312c6d55f47 100644 --- a/io/bulkstat.c +++ b/io/bulkstat.c @@ -301,7 +301,7 @@ bulkstat_single_f( for (i = optind; i < argc; i++) { struct single_map *sm = tags; - uint64_t ino; + uint64_t ino = NULLFSINO; unsigned int flags = 0; /* Try to look up our tag... */ @@ -314,7 +314,7 @@ bulkstat_single_f( } /* ...or else it's an inode number. */ - if (sm->tag == NULL) { + if (ino == NULLFSINO) { errno = 0; ino = strtoull(argv[i], NULL, 10); if (errno) {