From caf4117df8a8787239df053d331546166812b0d0 Mon Sep 17 00:00:00 2001 From: "Darrick J. Wong" Date: Sun, 2 Jun 2024 16:33:17 -0700 Subject: [PATCH] xfs_io: fix gcc complaints about potentially uninitialized variables MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 Reviewed-by: Christoph Hellwig --- io/bulkstat.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/io/bulkstat.c b/io/bulkstat.c index a9ad87ca1..06023e128 100644 --- a/io/bulkstat.c +++ b/io/bulkstat.c @@ -290,7 +290,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... */ @@ -303,7 +303,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) { -- 2.39.5