diff mbox series

xfs_io: fix gcc complaints about potentially uninitialized variables

Message ID 20240531201222.GS52987@frogsfrogsfrogs (mailing list archive)
State New
Headers show
Series xfs_io: fix gcc complaints about potentially uninitialized variables | expand

Commit Message

Darrick J. Wong May 31, 2024, 8:12 p.m. UTC
From: Darrick J. Wong <djwong@kernel.org>

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@kernel.org>
---
 io/bulkstat.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Christoph Hellwig June 1, 2024, 5:02 a.m. UTC | #1
Looks good:

Reviewed-by: Christoph Hellwig <hch@lst.de>
diff mbox series

Patch

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) {