OSDN Git Service

udf: initialize newblock to 0
authorTom Rix <trix@redhat.com>
Fri, 30 Dec 2022 17:53:41 +0000 (12:53 -0500)
committerJan Kara <jack@suse.cz>
Fri, 6 Jan 2023 14:44:32 +0000 (15:44 +0100)
The clang build reports this error
fs/udf/inode.c:805:6: error: variable 'newblock' is used uninitialized whenever 'if' condition is true [-Werror,-Wsometimes-uninitialized]
        if (*err < 0)
            ^~~~~~~~
newblock is never set before error handling jump.
Initialize newblock to 0 and remove redundant settings.

Fixes: d8b39db5fab8 ("udf: Handle error when adding extent to a file")
Reported-by: Nathan Chancellor <nathan@kernel.org>
Signed-off-by: Tom Rix <trix@redhat.com>
Signed-off-by: Jan Kara <jack@suse.cz>
Message-Id: <20221230175341.1629734-1-trix@redhat.com>

fs/udf/inode.c

index f3e9889..34e4163 100644 (file)
@@ -684,7 +684,7 @@ static sector_t inode_getblk(struct inode *inode, sector_t block,
        struct kernel_lb_addr eloc, tmpeloc;
        int c = 1;
        loff_t lbcount = 0, b_off = 0;
-       udf_pblk_t newblocknum, newblock;
+       udf_pblk_t newblocknum, newblock = 0;
        sector_t offset = 0;
        int8_t etype;
        struct udf_inode_info *iinfo = UDF_I(inode);
@@ -787,7 +787,6 @@ static sector_t inode_getblk(struct inode *inode, sector_t block,
                ret = udf_do_extend_file(inode, &prev_epos, laarr, hole_len);
                if (ret < 0) {
                        *err = ret;
-                       newblock = 0;
                        goto out_free;
                }
                c = 0;
@@ -852,7 +851,6 @@ static sector_t inode_getblk(struct inode *inode, sector_t block,
                                goal, err);
                if (!newblocknum) {
                        *err = -ENOSPC;
-                       newblock = 0;
                        goto out_free;
                }
                if (isBeyondEOF)